Macro Spring/fr: Difference between revisions

From FreeCAD Documentation
(Updating to match new version of source page)
mNo edit summary
Line 1: Line 1:
{{Macro/fr|Icon=Text-x-python|Name=Spring Simul|Name/fr=Simulation ressort|Description=Simulation de la compression/décompression d'un ressort.|Author=Mario52}}
{{Macro/fr|Icon=Text-x-python|Name=Spring Simul|Name/fr=Simulation ressort|Description=Simulation de la compression/décompression d'un ressort.|Author=Mario52|Version=1.0}}


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

Revision as of 09:04, 26 September 2016

File:Text-x-python Spring Simul

Description
Simulation de la compression/décompression d'un ressort.

Version macro : 1.0
Auteur: Mario52
Auteur
Mario52
Téléchargement
None
Liens
Version Macro
1.0
Dernière modification
None
Version(s) FreeCAD
None
Raccourci clavier
None
Voir aussi
None

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.

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

Other languages: