Using Booleans
List of: Discussion Topic
Subjects: Booleans, Modifying Models
Contents: Getting Started Guide

Boolean operations illustrate the true power of ACIS and solid models. Booleans are used to unite or intersect two solid bodies, or to subtract one solid body from another.

The following example creates a block and a cylinder and uses Boolean operations to unite them. Instead of solid:unite, solid:intersect or solid:subtract could have been employed to create other unique solids.

Scheme Example

; Create a solid block.
(define my_block (solid:block (position -20 -20 -20)

(position 20 20 20)))
;; my_block
; Create a cylinder.
(define my_cyl (solid:cylinder (position 20 0 -20)

(position 20 0 20) 20)))
;; my_cyl
; Unite the two bodies into a new body.
(define my_united (solid:unite my_block my_cyl))
;; my_united
; Save the results to an output file.
(part:save "tmpbool1.sat")
;; #t


Figure 8-6. Unite Block and Cylinder

Some of the Scheme extensions related to Boolean operations on models are:

body:combine Combines a list of solid and/or wire bodies into a single body.

body:separate Separates a single disjoint body into multiple entities.

bool:intersect Intersects two or more bodies.

bool:merge Combines faces and edges of equivalent geometry.

bool:merge-faces Combines specific faces on a body.

bool:nonreg-intersect Intersects two or more nonregularized bodies.

bool:nonreg-subtract Subtracts one or more nonregularized bodies from a body.

bool:nonreg-unite Unites two or more nonregularized bodies.

bool:regularise Regularizes an entity.

bool:subtract Subtracts one or more bodies from a body.

bool:unite Unites two or more bodies.

curve:intersect Gets the intersection between two edges or curves.

edge:project-to-plane Projects an edge onto a plane.

edge:split Splits an edge into two entities at a specified position.

edge:trim-intersect Trims both edges to the intersection of the edges.

face:intersect Gets the intersection curve between two faces.

position:project-to-line Gets the projection of a position on to a line.

position:project-to-plane Gets the projection of a position onto a plane.

solid:imprint Imprints curves of intersection of two bodies onto the faces of bodies.

solid:imprint-stitch Joins body1 and body2 along the intersection graph.

solid:intersect Intersects a list of solids.

solid:planar-slice Slices a solid body with a plane to produce a wire body.

solid:slice Gets the intersection graph between two bodies and returns it as a wire body.

solid:split Splits all periodic faces of a body along the seams.

solid:stitch Joins body1 and body2 along edges or vertices of identical geometry.

solid:subtract Subtracts a list of solids from a solid.

solid:unite Unites two solids.
PDF/GET/08CREAT.PDF
HTM/DATA/ACIS/GET/08CREAT/0011.HTM