i cleaning your macro (without modify your formules)
modify the line
Code: Select all
inputAngle = i * 10 # modify this value for vitesse
for the speed (here i * 10, modify example i * 50)
Code: Select all
import FreeCAD, FreeCADGui, Part
from FreeCAD import Base
from PySide import QtCore
import math
global inputAngle
global SateliteRaduis
def updateScene():
global SateliteRaduis
global inputAngle
factor = inputAngle / (1.0 + N1 / N3)
outputAngle = N1 / N3 * factor ;
SateliteAngle = (N1 / N3 - N1 / N2)*factor;
outputAngleRad=outputAngle * 3.141592618/180.0;
FreeCAD.activeDocument().getObject("Fusion").Placement = App.Placement(App.Vector(0,0,0),App.Rotation(App.Vector(1,0,0),inputAngle));
FreeCAD.activeDocument().getObject("Fusion002").Placement = App.Placement(App.Vector(0,0,0),App.Rotation(App.Vector(1,0,0),outputAngle));
FreeCAD.activeDocument().getObject("Fusion001").Placement = App.Placement(
App.Vector(0,-SateliteRaduis*math.sin(outputAngleRad),SateliteRaduis*math.cos(outputAngleRad)),
App.Rotation(App.Vector(1,0,0),SateliteAngle));
N1 = 11.0;
N2 = 15.0;
N3 = N1 + 2 * N2;
inputAngle=0.0
module=FreeCAD.activeDocument().getObject("InvoluteGear").module
SateliteRaduis = (N1+N2)*module/2.0 ;
for i in range(360): # number turn
updateScene();
inputAngle = i * 20 # modify this value for vitesse
print i
Gui.updateGui() # rafraichi l'ecran
FreeCADGui.updateGui() # rafraichi l'ecran
mario