Component:Booleans

From DocR21

(Redirected from Booleans)
Jump to: navigation, search
All Booleans Articles | C++ APIs | Scheme Extensions | Global Options | Error Codes
edit  

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.


edit  

Boolean Operations


Basic Operations

Operation Description
Unite Operation to create 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 to create 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 to create 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 that creates a body through a combined procedure of subtract and intersect.
Slice Operation that computes the intersection graph between two bodies and creates a wire body corresponding to the graph.
Imprint Operation that computes the intersection graph of the tool body and the blank body and embeds it into 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 the wire embedding APIs.

Projection This operation is used to project and imprint a wire body onto a solid or sheet body. The API projects (along surface normals) and imprints a given wire body (the tool) onto another given body (the blank). The projected wire can be imprinted onto the blank or just returned.

Advanced Operations

Operation Description
Fuzzy Booleans Fuzzy Boolean operations allow you to 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 within the absolute resolution (that is, SPAresabs).
Glue Operations that allow performing 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 about the result. They provide increase of speed for booleans.
Selective Booleans Unite, subtract, and intersect operations applied only on selected portions of the model.


edit  

What's New in Booleans


Some of the ACIS R21 improvements are:

  • An optional failsafe mode for api_slice is now available.
  • You can set a tolerance in the project_options object, to be used in projection operations.
  • Detection of sliver faces through api_detect_sliver_faces has been made more robust.


edit  

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 APIs for more advanced boolean operations, projection operations and selective boolean operations.

Error Codes

Upon failure of an Boolean API, error codes will be returned that explain the failure and suggest possible actions for correction.

Options

The main Boolean APIs 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.



edit  

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:

Journaling

Journaling is available for Boolean through the standard ACIS options journaling mechanism.

Versioning

Versioning is available for Boolean through the standard ACIS options versioning mechanism.


edit  

See Also

Personal tools
Live