Selective Booleans Component
List of: Components
Subjects: Booleans, Graph Theory
Contents: Selective Booleans

The Selective Booleans Component (SBOOL), in the sbool directory, performs the standard Boolean unite, subtract, and intersect operations. Whereas pure Boolean operations will act upon the full model, selective Boolean operations use graph theory to act upon only selected portions of the model. The sequence of edges or faces encountered in the model is graphed, and ordered pieces of the graph can be tagged for inclusion or exclusion in the result of the Boolean operation.

The selective Boolean operation allows two or more bodies to be combined with greater flexibility regarding what is kept and what is discarded, without having to intersect the bodies more than once. The flexibility in what may be selected is at the cellular level, which allows for more choices than unite, subtract, and intersect.

The two ways of selecting which cells to use are as follows:

Direct user input of a list of cells that have been picked (the easiest way). For example, in Scheme, this can be achieved by loading pick.scm and then using the pick-cell procedure.
Analyzing and subsetting the connectivity graph of cells. This uses the graph theory subsystem, which works with and creates graphs.

To make the interactive selection of cells easier, the Graphic Interaction Component includes the picking, coloring, and highlighting of cells. To make the programmatic selection of cells easier, the graph theory subsystem (in the Kernel Component) is used to test, manipulate, and create graphs.

The selective Boolean engine makes use of:

The nonregular Boolean
Generic attributes
Cellular topology
The ability to 2D convert a body
The ability to enclose a body
The ability to regularize a body
The graph theory subsystem

Figure 1-1 shows a blank body consisting of a block with two slots cut out of it and a tool body consisting of a cylinder that penetrates the block in three places. The first stage of the selective Booleans creates a nonregular unite of the two bodies and attaches cellular topology to the result. In addition, the connectivity graph of the resulting cells is returned and the vertices, or cells, of the graph are marked in a way that lets one know which body or bodies they came from.


Figure 1-1. The Blank and Tool Bodies


Figure 1-2. The Blank Body After the First Stage

The resulting body contains eight three dimensional cells, seven that came from the tool body and four that came from the blank body. Three of the cells came from both bodies. The connectivity graph that is returned by the first stage is given in Figure 1-3.


Figure 1-3. The Connectivity Graph

Cells A through G came from the tool body. Cells B, D, F, and H came from the blank body.

The second stage of the selective Boolean engine takes the nonregular united body and a list or graph of cells. It returns a regularized body that is made up of the given cells or vertices of the graph.


Figure 1-4. The Result of Picking C, G, and H to Keep
PDF/SBOOL/01CMP.PDF
HTM/DATA/SBOOL/SBOOL/01CMP/0000.HTM