Macro FCSpring Helix Variable
|This macro creates a spring with customizable, any turn may change the spring configuration can be saved in a file with the extension .FCSpring.|
See the examples
Macro version : 01.14
Date last modification : 2019/05/03
FreeCAD version : All
Download : Download the the Icons in .zip file
|Download the the Icons in .zip file|
How to install macros
How to customize toolbars
|Date last modification|
This macro creates a spring with customizable, any turn may change the spring configuration can be saved in a file with the extension .FCSpring
Temporary code for external macro link. Do not use this code. This code is used exclusively by Addon_Installer.
##This code is copied instead of the original macro code ##to guide the user to the offline download page ##Use it if the code of the macro is larger than 64 KB and cannot be included in the wiki ##or if the RAW code url is extra wiki location import PySide from PySide import QtGui ,QtCore diag = QtGui.QMessageBox(QtGui.QMessageBox.Information,u"Information", "This macro must by downloaded with this link" + "\n" " " + "\n" "https://gist.githubusercontent.com/mario52a/68c81c32a0727a693d3a/raw/da487bc24b2d082febaeec07130045a066a08f02/Macro_FCSpring_Helix_Variable.FCMacro" + "\n" " " + "\n" "Quit this window for access in the download page" ) diag.setWindowFlags(PySide.QtCore.Qt.WindowStaysOnTopHint) diag.setWindowModality(QtCore.Qt.ApplicationModal) diag.exec_() import webbrowser webbrowser.open("https://gist.githubusercontent.com/mario52a/68c81c32a0727a693d3a/raw/da487bc24b2d082febaeec07130045a066a08f02/Macro_FCSpring_Helix_Variable.FCMacro")
FCSpring Helix Variable
This section is used to configuration the spring
Schematic detail of spring configuration
First section, spring configuration
- Number of coil : Total of coil to spring. Default = 10
- Radius of spring : Radius of spring. Default = 20.0
- Pitch of spring : Pitch of spring general. Default = 15.0
- Precision of turn : Precision of turn the precision correspond the number of point for 1 turn the coil and is calculate : precision (number points) = (pitch / (360/precision)). Default = 5 (72 points)
- Spring conical : Give the large diameter of the cone that dimension will always be greater than the radius
- Begin : Begin angle of the spring first coil.
- End : End angle of the spring last coil.
- Ch. : Check box choice for activate the function Begin and End angle of the coil unchecked by default.
If the function is checked The accuracy is automatically set to 1 (360 points per turn 1 point = 1 degrees)
Second section, type line
- BSpline : Type line BSpline.
- Wire : Type line Wire.
- Points : Check box point if the check box is activate one point is create of on each point.
- Reverse : Check box reverse if the check box is activate the spring changes direction
Third section, selection
This section is displayed if on object is selected. The type object is displayed in the Text Editor
The object can be line, 2 points, circle, wire ... one axis the length of the spring is automatically created
Detection : Cylinder (radius), Sphere (radius), Toroid (radius) , Cone (little radius), Circle (radius), Arc (radius), Ellipse (little radius)
: If one circle is selected Norm not modify the radius of circle (Default)
- : If the buttom is pressed, the spring is adapted to the detected radius (If a radius is detected )
: If the clic mouse is on one face the spring is createt on this point (Default)
- : If the buttom is pressed, the spring is created on the center face selected
- Position : If twoo object are selected (first axis, second spring), this checkBox is enabled and you can modify the placement object 2 (spring) along the on object 1 (axis)
- : If three points click mouse are selected the Circle button is enabled and it possible to create a circle which can serve as a base for a spring
(0)(xx) : Number selection(s), length in mm of axis created x 10, egual number of points for shifting the spring of the axis
- : Position the spring on begin, middle, end axis
- : Reverse the spring of the axis
- DoubleSpinBox : Shifting the spring with precision (0.1 mm) along its axis
- : Reverse the counter ex: Begin 0 to 10.. or End 0 to 10..
- Slider : Position the spring on its axis
Four section, coil special length
- Numbering of coil : Numbering of coil to modify. (Defaut : none)
- Smoothing This checkBox discover one spinBox for determine the grade of smoothing the maximum value is the precision value -1 (this option is still at the prototype stage and the result can be satisfying or completely wrong)
- Pitch of coil : Pitch of coil to modify. (Defaut : none)
- : If the button is pressed the value of the "Pitch of string" is affected of the "Pitch of coil" (This value is automatically aligned of the value Pitch of string)
- Radius of coil : Radius of coil to modify. (Defaut : none)
- : If the button is pressed the value of the "Radius of string" is affected of the "Radius of coil" (This value is automatically aligned of the value Radius of string)
- : Button to accept the modification after select the numbering of coil and modify the pitch of coil.
- Text edit : This window displayed all coil modified.
- : Clean the text editor
- : Button "Zoom" enlarge the textedit window
- : The Read button open a dialogue box to read a file .FCSpring.
- : The Save button open a dialogue box to save a file .FCSpring with configuration spring modify or not.
- : Open a dialogue box to read a file .FCSpringCoor (all coordinates of points of the spring).
- : Open a dialogue box to save a file .FCSpringCoor (all coordinates of points of the spring).
- : Quit the macro.
- : Reset the macro to default configuration.
- : Launch the macro and create the spring configured.
The window report view displayed all value modified.
Example to spring modified
Example Report view
When the macro is launched full list of turns is displayed in tabular form.
Download the file image and copy in your macro repertory.
Click the image, in the new window position the mouse over the image, click the right mouse and do "Save target as ..."ToolBar button
Download the macro to Gist Macro_FCSpring_Helix_Variable
The above file is a macro in the form of GitHub code. Download the Zip on GitHub, and then follow the macros installation instructions for dummies shown at installing FreeCAD macros in Ubuntu.
The forum discussion Try to do a Spring
spring solid truncated
soften fittings :done
modify diameter to any coil :done
2019/05/03 Ver 01.14: compatible FreeCAD 0.19.16523 (Git)
2019/04/08 Ver 01.13: compatible FreeCAD 0.18.16093 (Git) /Python version: 3.6.6 /Qt version: 5.6.2
03/04/2017: ver 01.12: correction bug line 2314 add "global ui"
11/12/2016: ver 01.11: Adding Position of the spring on a selected object
10/09/2016: ver 01.10: Adding Button "Zoom" enlarge the textedit window
04/09/2016: ver 01.09: add smoothing
16/03/2016: ver 01.08 : correct and add "int()" to debutAngle and finAngle (read file)
02/03/2016: ver 01.07 : add option reverse spring
08/02/2016: ver 01.06 : correct bug angle cause "modifyAngle = int(file.readline().rstrip('\n\r')) # 9" modifyAngle is int() not char
07/01/2015: ver 01.05 : adding "Try ...Except" (data cone) for compatibility with old version
07/01/2015: ver 01.04 : adding spring conical and modify the path to "UserAppData" and adding the icone.
07/12/2014: ver 01.03 : new version with radius coil adjustable
17/11/2014: ver 1.02 : new version with GUI and modification any coil and save or load the data to disk.
10/11/2014: (23h20) correction of the modification
ligne.Placement = App.Placement(App.Vector(0.0,0.0,0.0), App.Rotation(App.Vector(0,0,1),angleTr), App.Vector(0,0,0))
10/11/2014: modify line 44 :
a = FreeCAD.ActiveDocument.Line.Placement=App.Placement(App.Vector(0.0,0.0,0.0), App.Rotation(App.Vector(0,0,1),angleTr), App.Vector(0,0,0))
ligne = FreeCAD.ActiveDocument.Line.Placement=App.Placement(App.Vector(0.0,0.0,0.0), App.Rotation(App.Vector(0,0,1),angleTr), App.Vector(0,0,0))
6/11/2014 : adding "makeBSpline" and configuration
During sweep tests here are the mistakes I have obtained !