Part Spiral

    From FreeCAD Documentation

    Part Spiral.svg Part Spiral

    Menu location
    Part → Create primitives → Spiral
    Part, OpenSCAD
    Default shortcut
    Introduced in version
    See also
    Part Primitives


    A Part Spiral.svg Part Spiral is a parametric shape that can be created with the Part Primitives.svg Part Primitives command. In the coordinate system defined by its DataPlacement property, the spiral lies on the XY plane with its center at the origin and its start point on the X axis. It widens as it turns counterclockwise.

    Part Spiral Example.png


    See Part Primitives.


    Part Spiral from the scripting example

    A Part Spiral object created with the scripting example below is shown here.


    See also: Property editor.

    A Part Spiral object is derived from a Part Feature object and inherits all its properties. It also has the following additional properties:



    The object has the same attachment properties as a Part Part2DObject.


    • DataGrowth (Length): The distance between two consecutive turns of the spiral. The default is 1mm.
    • DataRadius (Length): The start radius of the spiral, the distance between its center and its start point. Can be 0mm. The default is 1mm.
    • DataRotations (QuantityConstraint): The number of rotations, or turns, of the spiral. The default is 2.
    • DataSegment Length (QuantityConstraint): The number of turns per spiral subdivision. The default is 1, meaning each full turn of the spiral is a separate segment. Use 0 to suppress subdivision.


    See also: Autogenerated API documentation, Part scripting and FreeCAD Scripting Basics.

    A Part Spiral can be created with the addObject() method of the document:

    spiral = FreeCAD.ActiveDocument.addObject("Part::Spiral", "mySpiral")
    • Where "mySpiral" is the name for the object.
    • The function returns the newly created object.


    import FreeCAD as App
    doc = App.activeDocument()
    spiral = doc.addObject("Part::Spiral", "mySpiral")
    spiral.Growth = 2
    spiral.Radius = 3
    spiral.Rotations = 4
    spiral.Placement = App.Placement(App.Vector(1, 2, 3), App.Rotation(75, 60, 30))