| Beschreibung |
|---|
| Meine einfache Animation verwendet Skizze und Skizzierer Löser, um die Kolbenposition und die Pleuelposition/-rotation zu bestimmen. Versionsmakro : 1.0 Datum der letzten Änderung : 2014-06-13 FreeCAD version : Alle Herunterladen : Werkzeugleiste Symbol Die Datei crank_simul.fcstd Autor: kwahoo |
| Autor |
| kwahoo |
| Herunterladen |
| Werkzeugleiste Symbol Die Datei crank_simul.fcstd |
| Links |
| Makros Rezepte Wie installiere ich Makros So passen Sie Symbolleisten an |
| Macro-Version |
| 1.0 |
| Datum der letzten Änderung |
| 2014-06-13 |
| FreeCAD-Version(s) |
| Alle |
| Standardverknüpfung |
| None |
| Siehe auch |
| None |
Meine einfache Animation verwendet Skizze und Skizzierer Löser, um die Kolbenposition und die Pleuelposition/-rotation zu bestimmen.
Zum Testen der Animation:
Lade die Dateien herunter und kopiere den Code in die FreeCAD Python Konsole.
1. Öffne die angehängte Datei
Um die Animation anzuhalten tippe: "animation.stop()"
crank_simul.FCMacro
import FreeCAD as App, FreeCADGui as Gui, Part, time, sys, math, Draft, DraftGeomUtils
from PySide import QtGui,QtCore
class Animation(object):
def __init__(self):
App.Console.PrintMessage('init')
App.ActiveDocument.recompute()
self.timer = QtCore.QTimer()
QtCore.QObject.connect(self.timer, QtCore.SIGNAL("timeout()"), self.my_update)
self.timer.start(50)
self.an = 0.1
def my_update(self):
string = '{0}'.format(self.an)
self.an = self.an + 0.01 if self.an < (2 * math.pi) else 0.0
angle = math.degrees(self.an)
App.ActiveDocument.Sketch.setDatum(5,App.Units.Quantity(str(angle)+' deg'))
App.ActiveDocument.recompute()
p1 = App.ActiveDocument.Sketch.Shape.Vertexes[0].Point
p2 = App.ActiveDocument.Sketch.Shape.Vertexes[1].Point
conrodangle = math.degrees(Draft.DraftVecUtils.angle(App.Vector(1,0,0),(p1-p2))) - 90
App.ActiveDocument.getObject("Cylinder").Placement = App.Placement(p1,App.Rotation(App.Vector(1,0,0),-90))
App.ActiveDocument.getObject("Sketch001").Placement = App.Placement(p1,App.Rotation(App.Vector(0,0,1),conrodangle))
def stop(self):
self.timer.stop()
animation = Animation()
Die Forum Diskussion Animation eines Reihenvierzylindermotors
Der Blog freecad-tutorial.blogspot