Arch AxisSystem

    From FreeCAD Documentation

    Arch AxisSystem.svg Arch AxisSystem

    Menu location
    Arch → Axis tools → Axis System
    Default shortcut
    Introduced in version
    See also
    Arch Axis, Arch Grid


    The AxisSystem tool allows you to combine two or three Arch Axis objects.

    This is useful to define the intersection points between the different axes. Arch objects can then use this system to duplicate their shape on the different intersection points.

    Arch AxisSystem example.jpg

    Three Arch Axis objects combined into one Arch AxisSystem. An Arch Structure object uses this system as its DataAxis property, to have its shape duplicated at each intersection point.


    1. Optionally, select the Arch Axis objects you wish to include in this system.
    2. Press the Arch AxisSystem.svg Arch AxisSystem button.
    3. Right-click the newly created axes system object in the tree view to add/edit the Arch Axis objects included in this system.
    4. Select any existing Arch Axis and press Arch Add.svg Arch Add or Arch Remove.svg Arch Remove buttons to add or remove it to/from this system.
    5. Set the DataAxis property of any Arch object to point to this system, to have its shape duplicated to the intersection points of this system.


    • A same Arch Axis object can be part of more than one system
    • Any shape-based object can also be used as the Axis property of Arch objects. In this case, the object shape will be duplicated along the vertices of the Axis object


    See also: Arch API and FreeCAD Scripting Basics.

    The AxisSystem tool can be used in macros and from the Python console by using the following function:

    AxisSystem = makeAxisSystem(axes, name="Axis System")
    • Creates an AxisSystem object from the given axes, which is a single Arch Axis, or a list of them.


    import Draft, Arch
    Axes = Arch.makeAxis(5, 1000)
    Axes.ViewObject.LineWidth = 3
    Axes.ViewObject.BubbleSize = 200
    Axes.ViewObject.FontSize = 150
    Axes2 = Arch.makeAxis(6, 500)
    Axes2.ViewObject.LineWidth = 2
    Axes2.ViewObject.BubbleSize = 200
    Axes2.ViewObject.FontSize = 150
    Axes2.ViewObject.NumberingStyle = "A,B,C"
    Axes2.Length = 6000
    Draft.rotate(Axes2, -90)
    Draft.move(Axes2, FreeCAD.Vector(-1000, 2500, 0))
    AxisSystem = Arch.makeAxisSystem([Axes, Axes2])
    Structure = Arch.makeStructure(length=200, width=200, height=100)
    Draft.move(Structure, FreeCAD.Vector(-100, 0, 0))
    Structure.Axis = AxisSystem