GuiCommand | ||||||
---|---|---|---|---|---|---|
|
The Arch CutPlane tool cuts a solid Arch object like an Arch Wall or Arch Structure with a planar face.
*Left: Before applying the CutPlane tool. Middle: resulting wall after the cut is done. Right: yet another optional result*- If the cutting plane is to be derived from a straight edge ((v1.0) ) optionally align the working plane:
- The selected edge cannot be parallel to the normal of the working plane.
- The generated cutting face will be perpendicular to the working plane.
- Select the object to be cut.
- Do one of the following:
- There are several ways to invoke the command:
- Press the Cut with plane button.
- Select the Modify → Cut with plane option from the menu.
- Choose Behind or Front to indicate on which side of the cutting face material should be removed.
- Press 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 givenarchObject
, which is cut bycutPlane
, which is the face of another object.`archObject` should be a `SelectionObject` obtained from `FreeCADGui.Selection.SelectionEx()[0]`.
-
cutPlane
should be a
FaceObject
obtained fromFreeCADGui.Selection.SelectionEx()[0].SubObjects[0]
.
-
-
sideFace
specifies on which side of theFaceObject
a volume will be created; this volume will then be used to subtract from thearchObject
. IfsideFace
is0
it will create a volume in the rear of the face, otherwise it create it in front of the face.
Example:
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)
FreeCAD.ActiveDocument.recompute()
# 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)
FreeCAD.ActiveDocument.recompute()
Wall3 = Draft.move(Wall, FreeCAD.Vector(-4000, 0, 0), copy=True)
Wall4 = Draft.move(Wall2, FreeCAD.Vector(-4000, 0, 0), copy=True)
FreeCAD.ActiveDocument.recompute()
# 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)
FreeCAD.ActiveDocument.recompute()
⏵ documentation index > BIM > Arch CutPlane