Macro Spring/fr


Text-x-python.png Simulation ressort

Description
Simulation de la compression/décompression d'un ressort.
Auteur
Mario52
Liens
Recettes macros
Comment installer une macro
Comment ajouter une barre d'outils
Version
1.0
Date dernière modification
2014-09-29


Simule la compression et la décompression d'un ressort.

Spring 00.gif

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 Macro-execute.svg.

Spring 02.png

Fichiers

Spring.FCStd

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

# 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

Online version: "http://www.freecadweb.org/wiki/index.php?title=Macro_Spring/fr&oldid=239977"

Navigation menu