Partial Booleans
List of: Discussion Topic
Subjects: Booleans
Contents: Boolean

The ACIS implementation of partial Boolean operations allows one to perform "smart" Boolean operations. Partial Boolean operations are more efficient than the standard Boolean operations, because they have prior knowledge about the result. In particular, speed increases are achieved by knowing which faces need to be intersected and, optionally, what the intersection curves are. Two examples in which partial Booleans would provide a speed increase are inserting a pattern of features on a planar face, and modifying the definition of a feature with no topological model changes.

Note This "selective" partial Boolean functionality is not the same as the functionality implemented in the Selective Booleans Component (SBOOL). SBOOL performs a Boolean operation between two bodies and allows the user to select the regions to keep in the model, using graph theory and cellular topology.

The APIs used for performing partial Boolean operations include:

api_boolean_start Initializes the data structures for the Boolean operation.

api_update_intersection Creates a surface-surface intersection record when the intersection curve is known. The intersection curve should be transformed into the coordinate system associated with the blank body.

api_selectively_intersect Intersects an array of faces from the tool body with an array of faces in the blank body. This eliminates the checking of all faces of the tool body against all faces of the blank body. If an intersection record from api_update_intersection exists, this record will be used instead of performing an intersection to modify the intersection graph.

Depending on whether one wants to do a slice, imprint, imprint stitch, or complete Boolean operation, the operation can be completed with APIs such as api_slice_complete, api_imprint_complete, api_imprint_stitch_complete, or api_boolean_complete.

Several Scheme extensions demonstrate the use of partial Booleans. The source code for the Scheme extensions is provided to all customers and can be used for examples of implementing partial Boolean operations. For example, the Scheme extension solid:imprint imprints an edge onto a face. The curve underlying the edge is known to be the intersection curve, so the imprint operation does not need to do the curve-surface intersection.
PDF/BOOL/01CMP.PDF
HTM/DATA/BOOL/BOOL/01CMP/0010.HTM