Arch CutPlane

    From FreeCAD Documentation

    Arch CutPlane.svg Arch CutPlane

    Menu location
    Arch → Cut with plane
    Workbenches
    Arch
    Default shortcut
    None
    Introduced in version
    -
    See also
    Arch CutLine

    Description

    The Arch CutPlane tool cuts a solid Arch object like an Arch Wall or Arch Structure with a planar face.

    Arch CutPlane example.jpg

    Left: Before applying the CutPlane tool. Middle: resulting wall after the cut is done. Right: yet another optional result

    Usage

    1. Select the object to be cut in the Tree view or the 3D view.
    2. Select a planar face. This must be selected in the 3D view.
    3. Press the Arch CutPlane.svg Cut with plane button.
    4. Choose Behind or Front to indicate on which side of the cutting face material should be removed.
    5. Press the OK button.

    Scripting

    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.

    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()