Macro Spring: Difference between revisions
m (date) |
m (upgrade code) |
||
(11 intermediate revisions by 4 users not shown) | |||
Line 1: | Line 1: | ||
⚫ | |||
<translate> |
<translate> |
||
<!--T:1--> |
<!--T:1--> |
||
{{Macro |
|||
{{Macro|Icon=Text-x-python|Name=Spring Simul|Description=Spring simulation.|Author=Mario52|Version=1.0|Date=00/00/0000}} |
|||
|Name=Spring Simul |
|||
|Icon=Macro_Spring.png |
|||
|Description=Simulates the compression and decompression of a spring. |
|||
|Author=Mario52 |
|||
|Version=1.0 |
|||
|Date=2014-09-29 |
|||
|FCVersion=All |
|||
|Download=The file [http://forum.freecadweb.org/download/file.php?id=7679 Spring.FCStd]<br />[https://www.freecadweb.org/wiki/images/2/2d/Macro_Spring.png ToolBar Icon] |
|||
⚫ | |||
<!--T:2--> |
==Description== <!--T:2--> |
||
Simulates the compression and decompression of a spring. |
Simulates the compression and decompression of a spring. |
||
</translate> |
</translate> |
||
[[File:Spring_00.gif |
[[File:Spring_00.gif]] |
||
<translate> |
<translate> |
||
==Uses== <!--T:4--> |
==Uses== <!--T:4--> |
||
<!--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: |
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 25: | Line 36: | ||
</translate> |
</translate> |
||
ToolBar Icon [[Image:Macro_Spring.png]] |
|||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
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 55: | 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) |
time.sleep(0.1) |
||
⚫ | |||
#FreeCAD.getDocument("Spring").getObject("Helix001").Pitch = iib |
|||
#FreeCAD.getDocument("Spring").getObject("Helix001").Height = ib |
|||
}} |
}} |
||
⚫ | |||
'''Code for FreeCAD version 0.15''' |
|||
{{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" |
|||
⚫ | |||
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 |
|||
⚫ | |||
⚫ | |||
==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] |
||
</translate> |
</translate> |
||
{{clear}} |
{{clear}} |
||
⚫ |
Latest revision as of 09:23, 16 June 2020
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 |
Macros recipes How to install macros How to customize toolbars |
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
Script
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