Fixing Boolean Problems

Boolean operations are a powerful addition to your modeling toolbox; however, they can sometimes give strange or unexpected results. The Boolean button is found on the Create panel in the Compound Objects list; it allows you to join, subtract, intersect, and cut objects. Following is a list of problem scenarios and steps you can follow to fix them.

Tip: The ProBoolean compound object represents a significant improvement over the legacy Boolean compound object in a number of ways. In most cases, it's highly recommended that you use ProBoolean rather than Boolean.
Tip: Before performing a Boolean operation, you should save your scene or use Edit Hold. That way, you can quickly recover should anything not appear as expected.

Problems and Resolutions

Boolean Objects Disappear

Creases or Ridges Show in Boolean Objects

Consecutive Booleans Results in Disappearing Components

Splines and Boolean Operations

Tips for Successful Boolean Operations

Boolean Objects Disappear

If you mistakenly perform an Intersection Boolean operation on two objects that look like they intersect, but actually don't, you can end up in a situation where the object completely disappears. In the Operands group, you see both your objects listed but nothing on-screen.

  1. Click the Undo button to retract the Operand B selection.
  2. Right-click to exit the Boolean operation.
  3. Verify that the objects intersect by checking them in two viewports, like the Top and Left.
  4. Click Boolean to turn on the operation, and click Pick Operand B.
  5. Click the intersecting object.

Creases or Ridges Show in Boolean Objects

Creases or ridges might be caused by a Boolean operation between an object that has very few faces and an object that has considerably more faces, for example, when you subtract a complex freeform object from a simple box.

3ds Max tessellates the surface of the box so there are additional faces for the subtraction. Unfortunately, the faces are usually generated as long, slivered faces that sometimes overlap and form creases or ridges in the resulting scene, when rendered.

Before attempting the Boolean operation, try these steps.

  1. Select the object that has the lower face count.

    In this example, it would be the box.

  2. Change the Length, Width or Height Segments of the surfaces where the subtraction will occur.
  3. From the Compound Objects buttons, click Boolean.
  4. Perform the subtraction as you originally wanted.

By subdividing the surface with more faces, the Boolean operation has more faces and edges to work with. This results in fewer long, sliver-like faces that can produce creases or ridges.

Consecutive Booleans Results in Disappearing Components

Booleans are programmed to work with two operands, Operand A and Operand B. If you plan to join or subtract many objects from the object that you've selected as Operand A, you must click the Boolean button after each Operand B selection. If you don't, and simply click the Pick Operand B button and pick the next object, the previous operation is negated and the previous Operand B disappears.

The most efficient means to use when joining or subtracting a large number of objects to or from a single object is to attach all the objects before attempting the Boolean operation.

As an example, let's say you're building a metal plate that has a circle of bolt holes. So far, you have a flat box, Operand A, and ten cylinders, Operand B, passing through it.

The future metal plate with circle of bolts

  1. Select one of the cylinders.
  2. Right-click and convert it to an Editable Poly.

    This automatically opens the Modify panel.

  3. On the Edit Geometry rollout, click (Attach List).

    This is the little button next to Attach.

  4. From the Attach List dialog, select all the other Cylinders and click the Attach button.

    All the cylinders are a single object.

  5. Select the Box and make sure it has Length, Width, or Height Segs values that are greater than 1.

    See Creases or Ridges Show in Boolean Objects.

  6. Open the Create panel and from the drop-down menu that shows Standard Primitives, choose Compound Objects.
  7. Click the Boolean button and in the Parameters rollout Operations group, make sure Subtraction (A–B) is turned on.
  8. On the Pick Boolean rollout, click Pick Operand B, and select the Cylinders.

    The cylinders are subtracted to form holes in the box.

You only have to perform Boolean operations once instead of several times. This method is far more efficient and less prone to errors. It is also very useful for cutting rough openings for doors and windows into a wall if you're already working with 3D geometry. Next, you'll find an example for working with 2D spline objects.

Splines and Boolean Operations

Performing Boolean operations on splines made from the Create panel Shapes menu can be confusing. 2D spline shapes do not use the Boolean operation you'd use for 3D geometry. Shapes, converted to Editable Splines, offer Boolean functionality from the Modify panel Geometry rollout. Unlike Boolean operations performed on two separate pieces of 3D geometry, Boolean operations can only be performed on single splines.

Therefore, one of two things must be done before you can perform Boolean operations to spline shapes.

  • When originally creating the shapes, make sure Start New Shape is turned off on the Create panel Shapes Object Type rollout. When turned off, you can create several overlapping shapes that are treated as a single shape made up of several splines.

    Start New Shape in the OFF state (it is on, by default.)

  • If you didn't turn off Start New Shape, you'll have to attach all the spline shapes to create a single shape comprised of multiple splines.

To illustrate the most common situation, let's say you've got three overlapping rectangles and you want to subtract the two outer rectangles from the central rectangle. You also forgot to turn off Start New Shape.

  1. Start by selecting the central rectangle.
  2. Right-click and choose Convert To Convert To Editable Spline from the quad menu.

    The Modify panel automatically opens.

  3. In the Geometry rollout, click the Attach button and pick the two outer rectangles.

    Now, you've got a single shape made up of three sub-object splines.

  4. Turn off Attach and scroll up to the Selection rollout.
  5. Turn on the (Spline) sub-object mode, and select the central rectangle.
  6. Scroll down the Geometry rollout and click the Boolean button. Also click (Subtraction) to the right of Boolean.
  7. Pick the two outer rectangles.

    The final shape after subtracting the two outer rectangles

Tips for Successful Boolean Operations

Here, you'll find some general tips that will ensure that you're Boolean operations work the first time.

  • Add a modifier and collapse the stack.

    If a set of operands never seems to produce desired results, try adding a modifier and collapsing the stack to create an Editable Mesh or Editable Poly. You can also collapse objects to editable meshes and polys without first applying modifiers. If you do this, use Edit Hold or File Save As on the scene; you will not be able to adjust the parameters of the existing modifiers in the stack.

  • Create objects with more faces.

    In general, create objects that have more faces than you might normally use. For instance, increase the Height, Width, and Length segments of a Box, especially if the other object is more complex. Try to make the face count of both operands similar in number. With a larger number of faces, the edges created by the Boolean operation tend to be smoother and more refined. Once the Boolean operation gives you the results you want, apply the Optimize modifier to reduce the number of faces on the object.

  • Apply the STL-Check modifier.

    One way to check the validity of objects that you intend to use as operands is by applying the STL-Check modifier. This modifier is primarily used to verify that an object is a complete and closed surface in preparation for exporting to STL files. Because Boolean operations work best with objects that meet the same criteria, use STL-Check on your operands. After applying the STL-Check to an object, turn on Check. The Status group tells you if errors are present.