Macro Spring: Difference between revisions

From FreeCAD Documentation
(icon)
m (upgrade code)
 
(3 intermediate revisions by 2 users not shown)
Line 23: Line 23:


<!--T:5-->
<!--T:5-->
Open the 2 files below (Spring.FCMacro and Spring.FCStd) in FreeCAD with 2 screens (Menu: Windows → Tile) and click in the window and the macro then press {{KEY|F6}} (debug macro) to run the macro or run the macro with [[File:Macro-execute.svg]]
Open the 2 files below (Spring.FCMacro and Spring.FCStd) in FreeCAD with 2 screens (Menu: Windows → Tile) and click in the window and the macro then press {{KEY|F6}} (debug macro) to run the macro or run the macro with [[File:Std_DlgMacroExecuteDirect.svg]]


</translate>
</translate>
Line 40: Line 40:
'''Spring.FCMacro'''
'''Spring.FCMacro'''


{{Code|code=
{{MacroCode|code=
import FreeCAD, FreeCADGui, Draft, Part
import FreeCAD, FreeCADGui, Draft, Part
from FreeCAD import Base
from FreeCAD import Base
import time
import time


ii = iib = FreeCAD.getDocument("Spring").getObject("Helix001").Pitch
ii = iib = FreeCAD.getDocument("Spring").getObject("Helix001").Pitch.Value
i = ib = FreeCAD.getDocument("Spring").getObject("Helix001").Height
i = ib = FreeCAD.getDocument("Spring").getObject("Helix001").Height.Value


pas = 1
pas = 1
Line 68: Line 68:
App.Console.PrintMessage(str(ii2)+" " + str(ii)+" " + str(i)+" " + str(pas) +"\n")
App.Console.PrintMessage(str(ii2)+" " + str(ii)+" " + str(i)+" " + str(pas) +"\n")
Gui.updateGui()
Gui.updateGui()
time.sleep(0.1) # modify the time here
time.sleep(0.1)
#FreeCAD.getDocument("Spring").getObject("Helix001").Pitch = iib
#FreeCAD.getDocument("Spring").getObject("Helix001").Height = ib

}}
}}


<translate>
'''Code for FreeCAD version 0.15'''


'''Spring_FC-0-15.FCMacro'''

{{Code|code=
# 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

}}
<translate>
==Link== <!--T:10-->
==Link== <!--T:10-->
The forum discussion page: [http://forum.freecadweb.org/viewtopic.php?f=22&t=7449#p62193 scripting animations]
The forum discussion page: [http://forum.freecadweb.org/viewtopic.php?f=22&t=7449#p62193 scripting animations]

Latest revision as of 09:23, 16 June 2020

Other languages:

Spring Simul

Description
Simulates the compression and decompression of a spring.

Macro version: 1.0
Last modified: 2014-09-29
FreeCAD version: All
Download: The file Spring.FCStd
ToolBar Icon
Author: Mario52
Author
Mario52
Download
The file Spring.FCStd
ToolBar Icon
Links
Macro Version
1.0
Date last modified
2014-09-29
FreeCAD Version(s)
All
Default shortcut
None
See also
None

Description

Simulates the compression and decompression of a spring.

Uses

Open the 2 files below (Spring.FCMacro and Spring.FCStd) in FreeCAD with 2 screens (Menu: Windows → Tile) and click in the window and the macro then press F6 (debug macro) to run the macro or run the macro with

The File

Spring.FCStd

Script

ToolBar Icon

Spring.FCMacro

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:
        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)


Link

The forum discussion page: scripting animations