# Component:Booleans

(Redirected from Boolean operations)

## 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.

Note: Refer to related operations for imprinting curves: Imprint Shadow Edges and Imprinting Edges.

Projection Operation projects and (optionally) imprints a wire body onto a solid or sheet body.

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.

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:

### 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.