InStep Studio

INSTEP STUDIO

boolean toolBodies - Boolean

Time to read: ~3 min

The Boolean tool generates new surfaces that represent one of the three Boolean cases: unite, subtract or intersect.

What is important to consider is that the Boolean operation does not operate on the original data directly but rather on a surface-function that considers where data intersects or overlaps.

Method: Boolean

The general approach works on one of three methods:

Unite
This joins two or more (target) bodies. The resultant data will consist of the volume shared by all selected bodies
Subtract
This removes one or more tool bodies from one target body. The result will be a volume that is defined by the original body minus any tool bodies
Intersect
An intersection is the volume that is shared by all target bodies. Note that if one body intersects with multiple other bodies in discrete locations, the result will be an empty volume as the result is the volume where all targets overlap.

For the example below, the three methods are shown:

example bodies
Example bodies

The result of a Boolean Unite operation is shown below. For this example, the Settings>Application Settings>Booleans:BooleanCellCount value has been reduced to 32 in order to better illustrate some shortcomings of this approach:

Boolean Unite
Preview of Boolean Unite operation on Example Bodies
Boolean Subtract
Preview of Boolean Subtract operation using sphere as Target and cube as Tool
Boolean Intersect
Preview of Boolean Intersection operation on Example Bodies

Other applications can sometimes perform better Boolean operations as the implementation here currently does not attempt to resolve the original surface representation from the Boolean operation. Instead, the solution is a (Marching Cube) sampled mesh generated using the method defined and as such can lose detail.

In terms of the resolution used to obtain the resultant surface mesh, the number of cells being used in the remeshing process is defined by a value in the Application Settings> Booleans: BooleanCellCount. By default, this value is set to 200 but the user can choose a different value. Note that larger values may overwhelm the application and could cause the application to become unstable. Internally, the application prevents values larger than 1024 (or smaller than 10) though this limit may still be too high for some hardware systems.

Selection: Target

Each operation requires one or more bodies to operate on. By default, the Target button will be depressed, allowing selection of the body or bodies from the viewer on which the operation is to be performed. For a Unite or Intersect operation, only target bodies are required.
Individual selections will display in the viewer using the default (red) highlight. Un-highlighting is achieved by Control+Clicking the body. Alternatively, all selections can be cleared using the button next to the selection button.

Selection: Tool

For the Subtract method, additionally a tool or set of tools are required. These represent the data that is being removed from the single target body. Selection options are the same as for the Target.

Option: All, Selected, Preview, Clear & Apply

Identical to the other Bodies tools, the possibility exists to apply the tool to All currently loaded data or only those selected (if there are multiple bodies). The Preview button will show the result (only for the selected bodies) before making changes. Clearing the preview resets the display and the Apply option makes the changes permanent.