Macro Spring: Difference between revisions
(Added KEY template, removed file from translation plus minor fixes.) |
(adding code "For FreeCAD 0.15") |
||
Line 9: | Line 9: | ||
[[File:Spring_00.gif|left]]{{clear}} |
[[File:Spring_00.gif|left]]{{clear}} |
||
<translate> |
<translate> |
||
==Uses== <!--T:4--> |
|||
<!--T:5--> |
<!--T:5--> |
||
Line 17: | Line 17: | ||
[[File:Spring_02.png|left|300px]]{{clear}} |
[[File:Spring_02.png|left|300px]]{{clear}} |
||
<translate> |
<translate> |
||
==The File== <!--T:7--> |
|||
</translate> |
</translate> |
||
[http://forum.freecadweb.org/download/file.php?id=7679 Spring.FCStd] |
[http://forum.freecadweb.org/download/file.php?id=7679 Spring.FCStd] |
||
<translate> |
<translate> |
||
==Script== <!--T:9--> |
|||
</translate> |
</translate> |
||
Line 60: | Line 60: | ||
}} |
}} |
||
'''Code for FreeCAD version 0.15''' |
|||
<syntaxhighlight> |
|||
# 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 |
|||
print ii, " ",i |
|||
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 = iib |
|||
#FreeCAD.getDocument("Spring").getObject("Helix001").Height = ib |
|||
</syntaxhighlight> |
|||
<translate> |
<translate> |
||
==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] |
||
</translate> |
</translate> |
Revision as of 19:45, 18 March 2015
File:Text-x-python Spring Simul |
Description |
---|
Spring simulation. Author: Mario52 |
Author |
Mario52 |
Download |
None |
Links |
Macros recipes How to install macros How to customize toolbars |
Macro Version |
1.0 |
Date last modified |
None |
FreeCAD Version(s) |
None |
Default shortcut |
None |
See also |
None |
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 File:Macro-execute.svg
The File
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
print ii, " ",i
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 = iib
#FreeCAD.getDocument("Spring").getObject("Helix001").Height = ib
Link
The forum discussion page: scripting animations