Macro Spring
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 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
Spring_FC-0-15.FCMacro
# 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
Link
The forum discussion page: scripting animations