Boolean Cut¶
In one sentence: Subtract one shape (the Tool) from another shape (the Base) to produce the difference.
Overview¶
Workbench: Part · Menu: Part → Boolean → Cut
Toolbar: Part Boolean · Shortcut: none
Boolean Cut performs the set-difference operation: the volume of the Tool shape is removed from the Base shape. The result is a new solid containing only the material that was in the Base but not in the Tool.
Intuition¶
Drilling a through-hole is a Boolean Cut: the base is your block of metal, the tool is a cylinder the diameter of the desired hole. Everything the cylinder occupies is removed from the block. The cylinder "tool" itself is not destroyed — it still exists in the model tree (set to invisible by default after the cut).
When to use it¶
- Machining simulation: remove material from a billet.
- Creating through-holes, pockets, and slots in solid parts.
- Subtracting a body (e.g., a mould cavity) from a mould block.
When NOT to use it¶
- Inside a Part Design Body — use Subtractive primitives or Pocket.
- Cutting multiple shapes at once — use Boolean Fragments or apply successive cuts.
- The Tool does not intersect the Base — Cut produces an unchanged copy of the Base. This is usually a sign of a wrong Placement.
Step-by-step walkthrough¶
- Select the Base shape (the shape to cut from).
- Ctrl+click the Tool shape (the cutter).
- Part → Boolean → Cut (or toolbar).
- A
Part::Cutobject appears containing the result. - The original Base and Tool are hidden automatically.
Parameters¶
| Parameter | Description |
|---|---|
| Base | The shape to cut from |
| Tool | The shape to subtract |
Note: After creation, change Base and Tool by selecting the Cut object and editing the Data panel. The Refine property trims redundant edges from the result.
Common mistakes and pitfalls¶
Tool does not intersect Base — empty result
If the Tool solid is entirely outside the Base, the Cut result is identical to the Base. Check that the Tool's Placement overlaps the Base's volume.
Reversed selection order gives a different result
Base=box, Tool=cylinder cuts a cylinder from a box (a box with a hole).
Base=cylinder, Tool=box cuts a box from a cylinder (what remains of the
cylinder outside the box). Order matters.
Non-manifold result when Tool is coplanar with Base face
If the Tool face exactly coincides with a Base face, the result may be non-manifold. Offset the Tool by a small epsilon past the face.
Python API¶
import FreeCAD as App
doc = App.newDocument()
# Base: 30×20×20 mm block
base = doc.addObject("Part::Box", "Block")
base.Length = 30; base.Width = 20; base.Height = 20
# Tool: 8 mm radius cylinder (through-hole cutter)
tool = doc.addObject("Part::Cylinder", "Cutter")
tool.Radius = 8.0
tool.Height = 25.0 # longer than block to ensure full penetration
# Centre the cylinder on the block top
tool.Placement = App.Placement(
App.Vector(15, 10, -2), # XY centred, Z starts 2 mm below
App.Rotation()
)
doc.recompute()
# Cut
cut = doc.addObject("Part::Cut", "BlockWithHole")
cut.Base = base
cut.Tool = tool
doc.recompute()
print(f"Volume before: {base.Shape.Volume:.2f} mm³")
print(f"Volume after: {cut.Shape.Volume:.2f} mm³")
See also¶
- Boolean Fuse — union of two shapes
- Boolean Common — intersection of two shapes
- Boolean Dialog — choose the operation type interactively
- Refine Shape — clean up redundant edges after cutting