Arch CutPlane

From FreeCAD Documentation
Jump to: navigation, search
Other languages:
Deutsch • ‎English • ‎español • ‎français • ‎italiano • ‎русский
Arrow-left.svg Arch Schedule.svg Schedule Previous:

Arch CutPlane.svg Arch CutPlane

Menu location
Arch → Cut Plane
Default shortcut
Introduced in version
See also
Arch Remove


The Cut Plane tool allows you to cut an Arch object according to a plan:

  • You can cut an Arch object with the selected face, normal or opposite of the face plan.
  • This add a substraction component CutVolume to the Arch object

Arch CutPlane example.jpg

In the above image, two Arch Structure are cut with respective plane.

How to use

  1. Select the object to be cut, then the face (the face must be the last one you selected, and must be selected in the 3D-View).
  2. Press the Arch CutPlane.svg Cut Plane button.
  3. Choose if the object is cut behind the normale face or front of the normal face.
  4. Click the OK button.


See also: Arch API and FreeCAD Scripting Basics.

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

cutObj = cutComponentwithPlane(archObject, cutPlane, sideFace)
  • Creates a cutObj object from the given archObject, which is cut by cutPlane, which is the face of another object.
    • archObject should be a SelectionObject obtained from FreeCADGui.Selection.SelectionEx()[0].
    • cutPlane should be a FaceObject obtained from FreeCADGui.Selection.SelectionEx()[0].SubObjects[0].
  • sideFace specifies on which side of the FaceObject a volume will be created; this volume will then be used to subtract from the archObject. If sideFace is 0 it will create a volume in the rear of the face, otherwise it create it in front of the face.


import FreeCAD, FreeCADGui, Draft, Arch

p1 = FreeCAD.Vector(0, 0, 0)
p2 = FreeCAD.Vector(2000, 2000, 0)

Line = Draft.makeWire([p1, p2])
Wall = Arch.makeWall(Line, width=150, height=2000)

p3 = FreeCAD.Vector(0, 2000, 0)
p4 = FreeCAD.Vector(3000, 0, 0)

Line2 = Draft.makeWire([p3, p4])
Wall2 = Arch.makeWall(Line2, width=150, height=2000)

# Select the Wall
main_object = FreeCADGui.Selection.getSelectionEx()[0]

# Select the face of Wall2
selection = FreeCADGui.Selection.getSelectionEx()[0]
cut_face = selection.SubObjects[0]

cutObj = Arch.cutComponentwithPlane(main_object, cut_face, 0)

Wall3 = Draft.move(Wall, FreeCAD.Vector(-4000, 0, 0), copy=True)
Wall4 = Draft.move(Wall2, FreeCAD.Vector(-4000, 0, 0), copy=True)

# Select the Wall3
main_object2 = FreeCADGui.Selection.getSelectionEx()[0]

# Select the face of Wall4
selection2 = FreeCADGui.Selection.getSelectionEx()[0]
cut_face2 = selection2.SubObjects[0]

cutObj2 = Arch.cutComponentwithPlane(main_object2, cut_face2, 1)
Arrow-left.svg Arch Schedule.svg Schedule Previous: