A Boolean object combines two or more objects into a single mesh by performing a Boolean operation on them.
Example with operands and their operation icons
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.
Union operation
Intersect operation
Subtract operation
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.
Union operation with Imprint enabled
Union operation with Cookie enabled
To create a Boolean compound object:
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:
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.
Certain geometries can sometimes cause unpredictable results in the Boolean algorithm. To limit this possibility, try to follow the practices outlined below.
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.
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.
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.
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.
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.
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.
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.
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.
It is best practice to avoid scaling the first operand of a Boolean operation as this can cause unpredictable scaling on subsequently added operands.