A box, a cylinder, and a hole are not a part until you define how they combine. In Rig Cad, constructive solid geometry (CSG) records that recipe: union the base and rounded end, then subtract the cutter. The operation tree keeps those decisions, so changing a dimension regenerates the part instead of leaving only a final surface.

The Objects panel displays this scene tree. It is the sentence that states what geometry is kept, joined, or removed. If the interface is unfamiliar, begin with Rig Cad Editor Guide: The Five Core Panels.

What you will learn: how to read a CSG tree; how union, difference, intersection, symmetric difference, and hull combine shapes; and how to build a first part that remains editable.

What constructive solid geometry means

CSG describes a solid as a combination of primitives—boxes, cylinders, spheres, capsules, tori, and other shapes with controllable dimensions—and operation nodes.

A simple mounting tab can be written as:

difference(union(base, roundedEnd), holeCutter)

Read this as: join the rectangular base and rounded end, then subtract the through-hole. The expression records design intent, so you can change the base width, rounded-end diameter, or hole size without rebuilding the model.

Boolean Operations Playground
Project

Boolean Operations Playground

@p12/Boolean Operation basics
Boolean Operations Playground
Boolean Operations Playground

Predict the result, then switch between union, difference, intersection, symmetric difference, and hull. Adjust the separation and dimensions to see how overlap changes the result.

@p12/Boolean Operation basics
Predict the result, then switch between union, difference, intersection, symmetric difference, and hull. Adjust the separation and dimensions to see how overlap changes the result.

Boolean operations and hull

The core CSG operations are often called Booleans because they classify regions of space as retained or removed. Select an operation node in the object tree, then choose the relationship in Properties.

Operation Result Common uses
Union Union Retains the volume inside any child Join a base, ribs, bosses, handles, or supports
Difference Difference Keeps the first child and removes the remaining children Make holes, slots, pockets, vents, and hollow interiors
Intersection Intersection Keeps only the volume shared by every child Trim a form, isolate an overlap, or create a bounded fragment
Symmetric difference Symmetric difference For two inputs, keeps the volume belonging to one input but not both Exclusive leftovers, interlocking cutouts, and overlap comparisons
Hull Hull Creates the convex envelope around every child Convex bridges, blended supports, and simple envelopes

A union does not guarantee one connected body. Geometry that should become one part must overlap; disjoint children can remain separate volumes.

Difference is ordered: its first child is the base, and every later child is a cutter.

difference(panel, hole, slot) means “keep the panel, then remove the hole and slot.” Reversing the panel and hole produces a different result. When a difference produces nothing or removes the wrong region, check child order before changing dimensions.

Symmetric difference is the exclusive leftover. Rig Cad exposes it directly as an operation choice. For two inputs, it is mathematically equivalent to:

difference(union(A, B), intersection(A, B))

Hull is grouped with the primary operations because it is useful for bridges and envelopes, but it is not a Boolean. It wraps its children in the smallest convex solid that contains them, so it fills concavities and closes holes that lie inside that envelope.

Read the scene tree as a geometric sentence

In Rig Cad, the scene tree is not just an object list. Parent-child relationships define how geometry is evaluated. In the editor, that sentence is the object tree.

Diagram: The finished mounting tab is a difference containing a union body made from a base box and rounded-end cylinder, with a hole cylinder subtracted.

flowchart TD
  R["Difference: Finished mounting tab"] --> U["Union: Body"]
  R --> H["Cylinder: Hole cutter"]
  U --> B["Box: Base"]
  U --> S["Cylinder: Rounded end"]

Read from the leaves upward. The box and rounded end become one body under the union. The hole cylinder is then subtracted by the difference. Selecting a leaf shows its dimensions and transform; selecting an operation shows the relationship between its children.

Names make this much easier to debug. “Box 1” and “Cylinder 2” describe implementation accidents. “Base,” “Rounded End,” and “Hole Cutter” describe why the nodes exist.

The object tree makes the recipe visible in the editor. Select a node to highlight it in the viewport. Changing the operator on a selected Boolean recomputes the result automatically. Drag a node to a new parent when the recipe needs a different order.

Object tree for the mounting tab, with a difference root, union body, and hole cutter
Select a node in the object tree to see it in the viewport.
Interactive Sandbox
View project
Try it: inspect the union-and-difference tree, change partThickness and holeDiameter, and confirm the hole still passes completely through the tab. Then adjust baseLength and tabWidth and verify the body remains connected.
Explore the CSG Mounting TabInteractive Rig Cad editor

A mounting tab, one decision at a time

Plan the first part before you add nodes.

  1. What is the solid? A box and a cylinder. They belong together, so place them under a parent union.
  2. What is the cutter? A narrower cylinder for the through-hole. It does not live inside the union. It is a sibling under the difference.
  3. When do you subtract? After the body is one piece. If you cut the hole from the cylinder first, then union it with the box, the hole only goes through the rounded end.

In the object tree, the first child of a difference is the base. Later children are cutters. You can change the operator after the nodes are in place.

Coordinates describe both size and placement

Rig Cad uses +Z as world up, the XY plane as the base plane, and degrees for rotations. Every node also has its own local coordinate system.

For an unrotated box, width follows local X, height follows local Y, and depth follows local Z. A box that should be 6 units thick vertically therefore has a depth of 6. Follow the node’s documented local axes, then rotate only when the geometry needs a different orientation.

In the properties panel, those values are the node’s transform:

  • dimensions define the shape in local space;
  • position places its origin relative to its parent;
  • rotation redirects its local axes; and
  • scale multiplies the local result.

A rotated cutter’s “through” direction rotates with it. Lengthen the cutter along its local cutting direction before relying on world-space bounds. Transforms and Reference Frames in Rig Cad covers frames in more depth.

Groups create movable features

A reusable mounting feature may contain positive geometry, such as a boss, and negative geometry, such as its coaxial cutter. Build the feature near a sensible local origin, place its pieces relative to one another, and move the enclosing group. In the object tree, that group is just a parent you can select and move.

This keeps local dimensions readable and lets the whole feature move, rotate, or scale as one assembly. Pattern the complete mounting feature instead of patterning the boss and cutter separately.

A CSG tree becomes parametric when inputs have names

Literal dimensions are enough to prove a construction. Named variables turn it into a reusable design.

partThickness   = 6
holeDiameter    = 8
cutterOvershoot = 1
cutterDepth     = partThickness + 2 * cutterOvershoot

The user-facing values describe meaningful choices. Derived expressions record the relationships required to keep the construction valid. When partThickness changes, the cutter depth changes with it, the difference recomputes, and the through-hole remains a through-hole.

Expose only meaningful decisions in the configurator. Internal helpers such as cutterDepth should usually remain derived and hidden. Beyond Sliders: Designing Safe Parameter Spaces for Printable Products develops this idea into a complete system of ranges, dependencies, and validation rules.

2D profiles and 3D solids

Rig Cad can apply Boolean operations to either 2D regions or 3D solids, but the two stages should not be mixed in one operation.

For a plate-like part, combine compatible closed profiles and then extrude once:

difference(outerProfile, holeProfiles) → extrude

For geometry that is already solid, use a solid cutter:

difference(solidPlate, solidCutter)

Keep the stage explicit: profile operations before extrusion, solid operations after. Once a 3D solid is present, profile children cannot define solid regions in that Boolean.

Robust construction uses clear overlap

Two surfaces that merely touch create an ambiguous boundary relationship. A through-hole cutter that ends exactly on the part’s entry and exit faces may look correct in one state but leave a cap, sheet, or fragment after a dimension or transform changes.

Extend temporary through-cutters beyond the retained solid:

cutterDepth = partThickness + 2 * cutterOvershoot

The extra length lies outside the finished part, so it does not change the useful hole depth. It simply turns surface coincidence into unmistakable volume overlap.

Keep this margin separate from physical clearance. Clearance changes how finished parts fit. Cutter overshoot changes only how reliably the intended topology is constructed. Oversize the Cutter: Reliable Boolean and SDF Modeling in Rig Cad covers transformed cutters, blind features, smoothing bands, and verification in depth.

Inspect the construction, not only the silhouette

A convincing viewport angle cannot prove every internal relationship. Use the editor as an inspection environment while the model is still easy to change.

  • Give feature and cutter branches distinct colors so the tree matches the viewport.
  • Hide or isolate a parent when you need to see its inputs.
  • Make through-cutters overshoot the part so they do not share a face with the solid.
  • Use a cross-section to check holes, walls, and leftover overlap.

Keep construction colors until the geometry is approved. Color is how a tree branch maps to the object you see.

Common CSG failures

Symptom Likely cause First check
Difference produces nothing The base and cutter are reversed, or the cutter completely contains the base Check child order and containment
Difference appears unchanged The cutter does not overlap the base Check transforms and solved bounds
A hole leaves a cap Cutter ends on an outer face Extend it beyond both sides
A feature moves apart after resizing Placement uses unrelated fixed coordinates Derive placement from host dimensions
A rotated cutter misses the part It was lengthened along the wrong axis Inspect its local cutting direction
A profile is marked unused 2D and 3D inputs were mixed Separate profile and solid stages
Repeated pieces drift apart Component parts were patterned separately Repeat the enclosing feature
The default looks right but extremes fail Inputs have ranges but no relational rules Test boundary combinations

The tree usually contains the explanation. Before adding complexity, ask whether every node has the correct role, parent, coordinate system, and overlap.

Mesh or SDF

CSG describes how shapes combine. It does not require one internal representation.

Rig Cad can use mesh operations for crisp manufactured features and signed-distance-field (SDF) operations for smooth, field-defined geometry. The same tree habits apply to both: name the inputs, keep the recipe readable, and check the result.

For the editor control, smooth blending, precision, and the field mathematics behind the workflow, continue with Signed Distance Fields: Geometry as a Function.

Next steps

CSG establishes the model’s structure. Continue with Transforms and Reference Frames in Rig Cad to place complete features without breaking their internal relationships. Then use Post-Processing in Rig Cad for ordered result-level operations and Mesh Cleanup in Rig Cad for final topology and polygon control.

For focused extensions, use Oversize the Cutter to make subtraction robust, Signed Distance Fields for smooth field-defined geometry, and Beyond Sliders for constrained product variables.