Macro Spring
Description |
---|
Simulation de la compression/décompression d'un ressort. Version macro : 1.0 Date dernière modification : 2014-09-29 Version FreeCAD : All Téléchargement : The file Spring.FCStd ToolBar Icon Auteur: Mario52 |
Auteur |
Mario52 |
Téléchargement |
The file Spring.FCStd ToolBar Icon |
Liens |
Page des macros Comment installer une macro Comment créer une barre d'outils |
Version Macro |
1.0 |
Dernière modification |
2014-09-29 |
Version(s) FreeCAD |
All |
Raccourci clavier |
None |
Voir aussi |
None |
Description
Simule la compression et la décompression d'un ressort.
Utilisation
Ouvrir les deux fichiers ci-dessous (Spring.FCMacro et Spring.FCStd) dans FreeCAD avec deux fenêtres (menu Fenêtre → Mosaïque), cliquer dans la fenêtre et sur la macro puis faire F6 (Déboguer la macro) pour exécuter la macro ou la lancer avec le bouton File:Macro-execute.svg.
Fichier
Script
Spring.FCMacro
import FreeCAD, FreeCADGui, Draft, Part
from FreeCAD import Base
import time
ii = iib = FreeCAD.getDocument("Spring").getObject("Helix001").Pitch
i = ib = FreeCAD.getDocument("Spring").getObject("Helix001").Height
pas = 1
for ii2 in range(int(60)):
if pas == 0:
if ii > iib-1:
pas = 1
else:
ii += 1
i = (ii * 10)
else:
if ii < 2:
pas = 0
else:
ii -= 1
i = (ii * 10)
FreeCAD.getDocument("Spring").getObject("Helix001").Pitch = ii
FreeCAD.getDocument("Spring").getObject("Helix001").Height = i
App.Console.PrintMessage(str(ii2)+" " + str(ii)+" " + str(i)+" " + str(pas) +"\n")
Gui.updateGui()
time.sleep(0.1) # modify the time here
#FreeCAD.getDocument("Spring").getObject("Helix001").Pitch = iib
#FreeCAD.getDocument("Spring").getObject("Helix001").Height = ib
Code for FreeCAD version 0.15
Spring_FC-0-15.FCMacro
# For FreeCAD 0.15
import FreeCAD, FreeCADGui, Draft, Part
from FreeCAD import Base
import time
ii = iib = FreeCAD.getDocument("Spring").getObject("Helix001").Pitch.Value
i = ib = FreeCAD.getDocument("Spring").getObject("Helix001").Height.Value
pas = 1
for ii2 in range(int(60)):
if pas == 0:
print pas
if ii > iib-1:
pas = 1
else:
ii += 1
i = (ii * 10)
print i," ",ii," else1"
else:
print pas
if ii < 2:
pas = 0
else:
ii -= 1
i = (ii * 10)
print i," ",ii," else2"
FreeCAD.getDocument("Spring").getObject("Helix001").Pitch.Value = ii
FreeCAD.getDocument("Spring").getObject("Helix001").Height.Value = i
# App.Console.PrintMessage(str(ii2)+" " + str(ii)+" " + str(i)+" " + str(pas) +"\n")
Gui.updateGui()
time.sleep(0.1) # modify the time here
#FreeCAD.getDocument("Spring").getObject("Helix001").Pitch.Value = iib
#FreeCAD.getDocument("Spring").getObject("Helix001").Height.Value = ib
Liens
La discussion du forum (en anglais) : scripting animations