Boolean

Select an object. > Create panel > Geometry > Compound Objects > Object Type rollout > Boolean

Tab panels > Compounds tab > Boolean Compound Object

A Boolean object combines two other objects by performing a Boolean operation on them.

Operand A (left); Operand B (right)

These are the Boolean operations for geometry:

Subtraction: A-B (left); B-A (right)

Union (left); Intersection (right)

Union: The Boolean object contains the volume of both original objects. The intersecting or overlapping portion of the geometry is removed.

Intersection: The Boolean object contains only the volume that was common to both original objects (in other words, where they overlapped).

Subtraction (or difference): The Boolean object contains the volume of one original object with the intersection volume subtracted from it.

The two original objects are designated as operand A and B.

You can layer Booleans in the stack display, so that a single object can incorporate many Booleans. By navigating through the stack display, it's possible to revisit the components of each Boolean and make changes to them.

Booleans with Objects That Have Materials Assigned to Them

Most primitives use several material IDs on their surfaces. For example, a box uses material IDs 1-6 on its sides. If you assign a Multi/Sub-Object material with six sub-materials, the software assigns one to each side. If you assign a multi/sub-object material with two sub-materials, the software assigns the first material to sides 1, 3, and 5, and the second goes to sides 2, 4, and 6.

When you create a Boolean from objects that have materials assigned to them, the software combines the materials in the following way:

For more information, see Material Attach Options Dialog.

Surface Topology

Boolean requires that operands' surface topology be intact: This means no missing or overlapping faces and no unwelded vertices. The surface should be one continuous closed surface.

The Boolean corrects operands that fail to meet this requirement. However, the automatic correction may not be exactly what you want, so in some cases it might be safer to correct the surfaces manually.

To fill the holes, use the Cap Holes modifier.

Face Normals

Booleans require that the face normals of the surface be consistent. Flipped normals can produce unexpected results. Surfaces where some faces are facing one way and adjacent faces are flipped are also problematic, and are commonly found in geometry imported from CAD programs. The Boolean fixes these faces as best it can. Again, it might make more sense to correct these manually.

Use shaded viewports to look for normal problems, watching for objects that appear inside-out or look otherwise incorrect. You can also turn on Show in the Editable Mesh (Face) > Surface Properties rollout > Normals group. Fix normals here, or with a Normal modifier.

Overlapping Elements

Because Boolean operations depend on a clear understanding of what is inside and what is outside a mesh, meshes that overlap themselves can produce invalid results. This is a problem for the Teapot primitive (with all parts turned on), which overlaps itself.

If you need to use such an object as a Boolean operand, you might reconstruct it as a single non-overlapping mesh by separating the components and combining them with Boolean.

Working with Inverted Meshes

Boolean doesn't always produce the ideal result on "inverted meshes" (meshes that have been turned inside-out by having their normals flipped). The problem is that the area inside the flipped mesh is correctly seen as "outside," but the area outside it may also be seen as ôoutside.ö To remedy this, instead of inverting the mesh, make a very large box or other primitive centered on (but not touching) the mesh and subtract the mesh from it using Boolean. Then convert it to an editable mesh, and delete the box faces. This produces a correctly inverted mesh that works correctly with Boolean.

Alignment

If two Boolean operands are perfectly aligned without actually intersecting, the Boolean operation might produce the wrong result. Although this is rare, if it does occur, you can eliminate it by making the operands overlap slightly.

Relative Complexity between Operands

Boolean works best when the two operands are of similar complexity. If you wish to subtract text (a complex object made of many faces and vertices) from a box without any segments, the result is many long, skinny faces. Increasing the number of box segments produces better results. Try to maintain a similar complexity between operands.

Coplanar Faces/Collinear Edges

The Boolean allows for non-overlapping objects. Coincident faces/edges and vertices are not a problem. You can use objects completely encased within another object, where no edges intersect, to create Booleans.

Procedures

To create a Boolean:

  1. Select an object. This object becomes operand A.

  2. Click Boolean. The name of operand A appears in the Operands list on the Parameters rollout.

  3. On the Pick Boolean rollout, choose the copy method for operand B: Reference, Move, Copy, or Instance. (These methods are described in the Pick Boolean rollout section, later in this topic.)

  4. On the Parameters rollout, choose the Boolean operation to perform: Union, Intersection, Subtraction (A-B), or Subtraction (B-A). You can also choose one of the Cut operations, described later in the Operation group section.

  5. On the Pick Boolean rollout, click Pick Operand B.

  6. Click in a viewport to select operand B. The software performs the Boolean operation.

    The operand objects remain as sub-objects of the Boolean object. By modifying the creation parameters of the Boolean's operand sub-objects, you can later change operand geometry in order to change or animate the Boolean result.

Example: To create and modify a single object that contains multiple Booleans:

Suppose you want to create a box with two holes in it. One hole is to be cut by a sphere, and the second by a cylinder. If you want to make changes to the sphere or the cylinder later, you can do so by following these steps:

  1. Create a Boolean following the steps in the previous sections. The original object (the box) is converted to a Boolean, and is designated operand A. The second object (the sphere) is converted to operand B.

  2. Deselect the Boolean object. Build the cylinder if it does not already exist.

  3. Select the Boolean object; under Compound Objects click Boolean again.

  4. Click Pick Operand B and click the cylinder in the viewport. It is converted to operand B.

  5. On the Modify Panel, select Operand B from the Parameters rollout > Operands list. If you want to see operand B, choose Display/Update rollout > Display group > Operands or Result + Hidden Ops.

    If you want to animate the Cylinder or the CylinderÆs parameters you can now access them in the modifier stack display.

  6. If you want to modify the sphereÆs parameters, select the box in the Operands list.

  7. Now there are two entries labeled Boolean in the stack display. Choose the lower entry. The Sphere is displayed in the Operands list.

  8. Select the Sphere from the Operands list. The sphereÆs parameters are available by clicking the sphere's name in the modifier stack display.

  9. Use this technique to change parameters or animate any of the operands within the multiple Boolean.

    You can also navigate multiple Booleans through Track View. Clicking the operand in Track View gives you direct access to its entry in the modifier stack display. In complex objects with many Booleans, this is an easier method than the one outlined above.

Interface

Pick Boolean rollout

When you select operand B, you designate it as a Reference, Move (the object itself), Copy, or Instance, according to your choice in the Pick Boolean rollout for Boolean objects. Base your selection on how you want to use the scene geometry after you create the Boolean.

Because you usually create Boolean objects from overlapping objects, if the B object isn't removed (if you don't use the default Move option), it often obstructs your view of the completed Boolean. You can move the Boolean or the B object to better see the result.

Pick Operand B: Use this button to select the second object to use to complete the Boolean operation.

Reference/Copy/Move/Instance: Lets you specify how operand B is transferred to the Boolean object. It can be transferred either as a reference, a copy, an instance, or moved.

Object B geometry becomes part of the Boolean object regardless of which copy method you use.

Parameters rollout

Operands group

Operands list field: Displays the current operands.

Name: Edit this field to change the name of the operands. Select an operand in the Operands list and it will also appear in the Name box.

Extract Operand: Extracts a copy or an instance of the selected operand. Choose one of the operands in the list window to enable this button.

Note: This button is available only in the Modify panel. You can't extract an operand while the Create panel is active.

Instance/Copy: Lets you specify how the operand is extracted: as either an instance or a copy.

Operation group

Union: The Boolean object contains the volume of both original objects. The intersecting or overlapping portion of the geometry is removed.

Intersection: The Boolean object contains only the volume that was common to both original objects (in other words, where they overlapped).

Subtraction (A-B): Subtracts the intersection volume of operand B from operand A. The Boolean object contains the volume of operand A with the intersection volume subtracted from it.

Subtraction (B-A): Subtracts the intersection volume of operand A from operand B. The Boolean object contains the volume of operand B with the intersection volume subtracted from it.

Cut: Cuts operand A with operand B, but doesn't add anything to the mesh from operand B. This works like the Slice modifier, but instead of using a planar gizmo, Cut uses the shape of operand B as the cutting plane. Cut treats the geometry of the Boolean object as volumes rather than closed solids. Cut does not add geometry from operand B to operand A. Operand B intersections define cut areas for altering geometry in operand A.

There are four types of Cut:

Display/Update rollout

Display group

Visualizing the result of a Boolean can be tricky, especially if you want to modify or animate it. The Display options on the Boolean Parameters rollout help you visualize how the Boolean is constructed.

The display controls have no effect until you've created the Boolean.

Result: Displays the result of the Boolean operation; that is, the Boolean object itself.

Results + Hidden Ops: Displays the "hidden" operands as wireframe.

Operand geometry remains part of the compound Boolean object, although it isn't visible. The operand geometry is displayed as wireframes in all viewports.

Operands: Displays the operands instead of the Boolean result.

Tip: When operands are difficult to see in a viewport, you can use the Operand list to select one or the other. Click the name of the A or B operand to select it.

Displaying the operands

Displaying the result (A-B)

Displaying the hidden operand after A-B

Displaying the hidden operand after B-A

Update group

By default, Booleans are updated whenever you change the operands. A scene that contains one or more complicated, animated Booleans can impede performance. The update options provide alternate methods to improve performance.

Always: Updates Booleans immediately when you change an operand, including the original object of an instanced or referenced B operand. This is the default behavior.

Manually: Updates Booleans only when you click Update. With this option, the viewports donÆt always show current geometry, but you can force an update when necessary.

Update: Updates the Boolean. The Update button is not available when Always is selected.