Component:Booleans
From DocR23
Boolean Component
The Boolean Component (BOOL) performs Boolean operations on bodies, first finding the intersections between the bodies, and then deciding which pieces of the bodies to retain and which to discard.
A body involved in a Boolean operation may be composed of solid, sheet and wire regions. Initial and resulting bodies may be manifold or non-manifold. The results of the Boolean operation may be regularized or non-regularized point sets. The bodies involved in Boolean operations are often referred to as a blank body and a tool body. The blank body is the body on which to perform the operation and the tool body is the body with which to perform the operation. This is analogous to a "tool" machining portions of a "blank."
The Boolean Component also contains Spline Conversion functionality.
Boolean Operations
Basic Operations
| Operation | Description |
|---|---|
| Unite | Operation creates a body that contains all points that are in either of the two input bodies. This joins the tool body and the blank body. |
| Intersect | Operation creates a body that contains all points that are common to both of the two input bodies. The result is all points that are in both the tool body and the blank body. |
| Subtract | Operation creates a body that contains all points that are in the blank body but not in the tool body. This is the difference of the points in the tool body from the points in the blank body. |
| Chop | Operation creates a body through a combined procedure of subtract and intersect. |
| Slice | Operation computes the intersection graph between two bodies and creates a wire body corresponding to the graph. |
| Imprint | Operation computes the intersection graph of the tool body and the blank body and embeds it in both bodies, splitting faces and edges of the original two bodies with the edges of the intersection graph.
|
| Projection | Operation projects and (optionally) imprints a wire body onto a solid or sheet body. |
Advanced Operations
| Operation | Description |
|---|---|
| Fuzzy Booleans | Fuzzy Boolean operations perform Boolean operations on bodies in which some entities (faces or edges) from one of the bodies are intended to be coincident with those on the other body, yet the coincidence is not precise to the default tolerance. |
| Glue | Operations perform unite or subtract Boolean operations with increased performance in special circumstances. |
| Open Shell Booleans | Boolean operations are also applicable to limited single-sided open shells. |
| Partial Booleans | Operations which require prior knowledge of the result. They provide increase of speed for Booleans. |
| Selective Booleans | Unite, subtract, and intersect operations applied only on selected portions of the model. |
Additional Operations
| Operation | Description |
|---|---|
| Imprinting Edges | Operations efficiently embed edges in coincident faces. |
| Splitting Faces | Operations split faces along isoparameter lines, at discontinuities, or along seams. |
| Merging | Capabilities exist to control the merging of entities during Boolean operations and to perform merges outside of Boolean operations. |
| Unhooking, Uncovering, and Removing | Operations remove faces or edges from a body. |
| Stitching | Operations connect faces along edges, or edges at vertices. |
What's New in Booleans
Some of the ACIS R23 improvements are:
Booleans Interface
C++ APIs
The basic Boolean operations normally require two bodies, blank (onto which the operation is applied) and tool (with which the operation is performed). Many of the boolean operations take an options object. After the operation, either or both bodies may be kept or destroyed. There are also API functions for more advanced boolean operations, projection operations and selective boolean operations.
Error Codes
Upon failure of a Boolean API function, an error code will be returned that explains the failure and suggests possible actions for correction.
Options
The main Boolean API functions take the options objects below to control their behavior. There are also global options that affect the behavior of Boolean operations.
| Options for Dedicated Operations | Option Class |
|---|---|
| All Booleans | BoolOptions |
| Glue | glue_options |
| Projection | project_options |
| Unstitch Non-Manifold body | unstitch_nm_options |
| Selective Booleans | tube_options |
| Convert-to-spline | convert_to_spline_options |
Scheme Extensions
Examples of Scheme extensions related to Booleans are bool:unite and bool:subtract. Refer to the complete list of Boolean Scheme extensions.
Boolean Topics
Data Structures
Each Boolean operation begins with building an intersection graph which is a data structure defining the intersection of the bodies.
Types of Boolean Operations
Boolean operations can be classified as:
- Regularized or non-regularized Boolean operations - Operations where model dimensionality is of importance.
- Destructive or non-destructive Boolean operations - Operations that preserve or not preserve one (or both) of the input bodies.
Boolean Operation Performance
The performance of Boolean operations depends upon the input bodies and how the operations are used.
Journaling
Journaling is available for Boolean operations through the standard ACIS options journaling mechanism.
Versioning
Versioning is available for Boolean operations through the standard ACIS options versioning mechanism.