User Tools

Site Tools


animation:vertextracker

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
animation:vertextracker [2015/12/06 17:23]
freek
animation:vertextracker [2015/12/06 17:24] (current)
freek
Line 1: Line 1:
 +====== Animation VertexTracker ======
 +
 +{{youtube>​large:​MARYSQ-nrGE}}
 +
 +
 +
 +Bei einer Animation kann sich ein Körper im Raum bewegen aber auch seine Form und Maße ändern. ​
 +
 +Der VertexTracker zeichnet die Bewegung der Eckpunkte des Körpers auf. Sie können im 3D Fenster eingeblendet oder für andere Zwecke weiter verwendet werden. ​
 +
 +
 +~~CL~~
 +
 +
 +
 +
 +{{ :​story:​b170:​bn_805.png|vertex tracker menu}}
 +Der VertexTracker wird vom Animations Manager getrieben. Nach einem Animationsdurchlauf hat er die Daten für alle Ecken gesammelt und soweit möglich als Fäden gespeichert.
 +Diese Daten können auf die Konsole ausgegeben oder als Pfade im 3D Raum dargestellt werden. Bewegt sich eine Ecke während der Animation nicht, wird auch nur ein Punkt erzeugt.
 +
 +Der VertexTracker braucht ein Beobachtungsobjekt als Parameter src. Nach einer erfolgreichen Aufzeichnung muss man den Tracker deaktivieren,​ wenn man weiter mit der Animation spielen will. da er sonst weiter Daten aufzeichnet. ​
 +
 +<​code>​
 +import FreeCAD
 +import Animation, Placer,​Toucher,​ VertexTracker
 +
 +FreeCAD.newDocument("​Unbenannt"​)
 +
 +box=FreeCAD.activeDocument().addObject("​Part::​Box","​Static"​)
 +box.Height=40
 +box.Length=100
 +
 +box2=FreeCAD.activeDocument().addObject("​Part::​Box","​Animated"​)
 +box2.Placement.Base=FreeCAD.Vector(.0,​.0,​0.)
 +
 +toucher=Toucher.createToucher("​Force the Common",​box)
 +
 +#
 +# Example: track the vertexes of a changing fusion
 +#
 +
 +placer=Placer.createPlacer("​Box Placer",​box2)
 +placer.x="​100*time-10"​
 +placer.y="​ -5  if time< 0.5 else 7"
 +placer.z="​5+30*(0.5-time)**2"​
 +placer.arc="​0"​
 +placer.time=0
 +
 +manager=Animation.createManager()
 +manager.intervall = 100
 +manager.sleeptime = 0.0
 +
 +fuse=App.activeDocument().addObject("​Part::​MultiFuse","​Fusion"​)
 +fuse.Shapes = [box,box2]
 +fuse.ViewObject.ShapeColor=(1.0,​1.0,​.5)
 +fuse.ViewObject.Transparency=70
 +
 +vertextracker=VertexTracker.createVertexTracker("​Track of the Fusion"​)
 +vertextracker.src=fuse
 +
 +manager.addObject(placer)
 +manager.addObject(toucher)
 +manager.addObject(vertextracker)
 +
 +# run the manager
 +manager.Proxy.run()
 +
 +# show track data
 +vertextracker.Proxy.show()
 +
 +# generate pathes for the tracks
 +vertextracker.Proxy.gen()
 +</​code>​
  
animation/vertextracker.txt · Last modified: 2015/12/06 17:24 by freek