Boolean Compound Object

A Boolean object combines two or more objects into a single mesh by performing a Boolean operation on them.

Tip: You can also use ProBoolean for creating compound objects, which has an alternate workflow and some other options. For most purposes however, the new dual-precision Boolean algorithm offers the most powerful and intuitive method for accurately assembling compound objects.

Interface

Boolean Parameters rollout

Example with operands and their operation icons

Add Operands button
Click to add an operand to the compound object from either the viewport or scene explorer.
Operands list
Displays the operands of the compound object. Colored icons show the current Boolean operation as shown in the Operand Parameters rollout. Visibility of each operand can be toggled on and off by clicking the eye icon.

You can right-click an operand to access the following commands: Remove Operand, Create New Boolean, Rename, Disable, and Solo. Use Create New Boolean to create sub-Booleans within the compound object.

Remove Operands
Removes the selected operands from the compound object.
Open Boolean Explorer
Opens the Boolean Explorer window. See Boolean Explorer for more information.

Operand Parameters rollout

Union
Unifies the volume of both objects. The intersecting or overlapping portion of the geometry is discarded. Operands with Union applied are outlined in green when displayed in the viewport.

Union operation

Intersect
Intersects the overlapping volume common to both original objects. The remaining geometry is discarded. Operands with Intersect applied are outlined in yellow when displayed in the viewport.

Intersect operation

Subtract
Removes the intersecting volume from the base (originally selected) object . The operation is also known as difference. Operands with Subtract applied are outlined in blue when displayed in the viewport

Subtract operation

Merge
Intersects and combines two meshes without removing any of the original polygons. New edges are created where the objects intersect. This can be useful for cases in which you need to selectively remove parts of the mesh. Operands with Merge applied are outlined in purple when displayed in the viewport
Attach
Combines multiple objects into one without affecting their topology; they remain essentially separate elements of the compound object. Operands with Attach applied are outlined in orange when displayed in the viewport.
Insert
Subtracts the bounding shape of Operand B (the newly added operand) from Operand A (the current result), leaving the shape of Operand B unaffected by the operation. Operands with Insert applied are outlined in red when displayed in the viewport.

In effect, Insert treats the first operand as a liquid volume, so that if there is a hole in the inserted operand or some other way for the 'liquid' to enter its volume, it does.

Imprint
Enabling this option inserts (imprints) the intersection edges between the operands and the original mesh without removing or adding faces. Imprint only splits faces and adds new edges to the mesh of the base (originally selected) object.

Union operation with Imprint enabled

Cookie
Enabling the Cookie Cutter option performs the specified Boolean operation but does not add the faces from the operands into the original mesh. The faces of the selected operand are not added to the Boolean result. This option can be used to cut a hole in a mesh or access the portion of a mesh inside another object.
Note: Once a Boolean object has a Cookie Cutter operation performed on it, the mesh is no longer a closed manifold or 'watertight'. Subsequent operations will follow the rules of open manifolds which have no inside or outside.
Tip: Enabling Cookie on an operand also applies the option to any operands below it in the Operands list. To remove unwanted cut-outs, you can drag the cookie-enabled operand to the bottom of the list.

Union operation with Cookie enabled

Material group

Apply Operand Material
Applies the material of the added operand to the entire compound object.
Retain Original Material
Keeps the existing material applied to the compound object.

Display group

Result
Displays the final result of the Boolean operation(s).
Operands
Displays the operands without Boolean operations performed on them. The operands are outlined in a color showing the current Boolean operation being performed on them.
Selected Operands
Displays the selected operands. The operands are outlined in a color showing the current Boolean operation being performed on them.
Display as Shaded
When enabled, displays shaded operands in the viewport. This option turns off the color coded display.

Procedures

To create a Boolean compound object:

  1. Create and combine source objects as desired in the viewports.
  2. Select a base object.
  3. Click Boolean. The name of the operand appears in the Operands list on the Boolean Parameters rollout.
  4. On the Boolean parameters rollout, click the Add Operands button to select another object from the viewport or scene explorer to add to the compound object.
  5. On the Parameters rollout, choose the Boolean operation to perform: Union, Intersection, Subtraction, Merge, Attach, or Insert, enabling the Imprint or Cookie options if required.
  6. The operand objects remain as sub-objects of the Boolean object. Double-click the sub-object to change parameters and use transform tools. By modifying the creation parameters of the Boolean's operand sub-objects, you can change operand geometry in order to change or animate the Boolean result at any time.

To create and modify a single compound object containing multiple operands:

    In this example, a box is created with two holes cut into it: one hole by a sphere, the second by a cylinder. In order to be able to make changes to the sphere or the cylinder later, assemble the compound object using the following steps:

  1. Create a Boolean compound object following the steps in the previous section. The original object (the box) is converted to a Boolean, and is designated as the base object.
  2. Deselect the Boolean object. Create and place the sphere if not already in position.
  3. Select the Boolean object. Click to show the Modify panel; or under Compound Objects, click Boolean again.
  4. Click Add Operand and click the sphere in the viewport or scene explorer.
  5. Deselect the Boolean object. Create and place the cylinder if not already in position.
  6. Select the Boolean object. Click to show the Modify panel; or under Compound Objects, click Boolean again.
  7. Click Add Operand and click the cylinder in the viewport or scene explorer.
  8. If you want to modify the sphere’s parameters, choose the box in the Operands list.
  9. Now there are two entries labeled Boolean in the stack display. Choose the lower entry. The Sphere is displayed in the Operands list.
  10. Choose the Sphere from the Operands list. The sphere’s parameters are available by double-clicking the sphere's name in the modifier stack display. You can change the parameters, use transform tools, or animate any of the operands within the Boolean compound object.

Booleans and Materials

Whenever you create a Boolean object, the material is inherited from the original mesh.

When you then add an operand, you have the option to use the operand's original material or retain the material from the Boolean compound object. If you select Retain Original Material, the material ID's will match. If you select Apply Operand Material however, the material ID of the added operand will be different than the original Boolean mesh.

The assignment of material ID's only happens when you add an operand. You cannot change the material ID once the operand has been added within the Boolean mesh. After you have added an operand, you can however go into the material editor and get the material from the Boolean object. Note that this is a multi-sub object material. Changing the material on the original mesh will affect the Boolean Mesh material as well.

Best Practices for Working with Booleans

Certain geometries can sometimes cause unpredictable results in the Boolean algorithm. To limit this possibility, try to follow the practices outlined below.

Surface Topology

Boolean requires that the surface topology of operands be intact. This means there must be no missing or overlapping faces, and no unwelded vertices. The surface should be continuous and closed.

The Boolean algorithm will try to correct operands that fail to meet this requirement, however the results may not always be desirable and in some cases it is best to correct the surfaces manually.

To check for holes in the geometry, use the STL-Check modifier or the Measure utility. To fill holes, use the Cap Holes modifier.

Face Normals

The face normals of the surface should always be consistent as flipped normals can produce unexpected results. Surfaces facing one way while adjacent surfaces are flipped can also be problematic, something common with geometries imported from CAD programs. The Boolean algorithm attempts to fix the faces, however in some cases it is better to correct these manually.

To look for normal problems, turn on shading in the viewports, paying attention to objects that appear inside-out or otherwise incorrect. You can also turn on Show in the Editable Mesh (Face) Surface Properties rollout Normals group. You can fix normals here or by using a Normal modifier.

Planar Faces

Meshes should be constructed so that all faces are planar, meaning each of the vertices used in a face lie in the same plane. Faces distorted into non-planar shapes (for example, such as on a potato chip) can cause Boolean errors. Though the Boolean algorithm will attempt to split these faces into planar pieces when applying operations, it is best to avoid such structures when modelling otherwise unwanted results may occur.

Overlapping Elements

Because Boolean operations depend on a clear understanding of what is the inside and outside of a mesh, meshes that overlap themselves can produce invalid results. For instance, if you use the Collapse utility with two overlapping objects without turning on the Boolean feature, the resulting object will not make a good Boolean operand. This is also 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 then combining them using Boolean.

Working with Inverted Meshes

Boolean doesn't always produce the ideal result on 'inverted meshes', that is, 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 is also seen the same way. 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. Convert the result into an editable mesh and delete the box faces. This produces a correctly-inverted mesh that is compatible with Boolean operations.

Alignment Issues

If two Boolean operands are perfectly aligned without actually intersecting, the Boolean operation may produce the wrong result. Although the occurrence of this error is rare, you can correct this by making the operands overlap slightly.

Keeping Relative Complexity Between Operands

Boolean works best when the two operands are of similar complexity. For example, if you subtract text, a complex object made of many faces and vertices, from a box without any segments, the result is many long skinny faces that are prone to rendering errors. Increasing the number of box segments produces better results. Try to maintain a similar complexity between operands.

Coplanar Faces/Colinear Edges

Previous versions of the Boolean algorithm required that objects overlap. If two objects did not overlap but merely touched an edge to an edge or a face to a face, the Boolean operation would fail.

The Boolean algorithm now allows for non-overlapping objects. Coincident faces/edges and vertices are no longer a problem. You even can use objects completely encased within another object, where no edges intersect at all, to create a Boolean compound object.

See also Collapse Utility to create Boolean compound objects using multiple objects.

Scaling Operands

It is best practice to avoid scaling the first operand of a Boolean operation as this can cause unpredictable scaling on subsequently added operands.