Developer Desktop - Non-regularized Booleans
By R. Sriprasadh, Developer
Imagine what would be the result of a Boolean intersection between a ‘block’ and another ‘block’ sitting on top of it?
An intuitive answer could be a "planar face". But it may be surprising to know that the above operation gives an empty body (i.e. no intersection). The rest of this article explains this phenomenon and indicates how the intuitive result can be obtained.
ACIS Boolean operation can be defined as a set operation between two ACIS Bodies, typically first finding the intersections between the bodies, and then deciding which portions of the bodies to retain and which to discard.
According to the continuum point set model of solidity, all the points of any X ⊂ R3 can be classified according to their neighborhoods with respect to X as 'interior', 'exterior', or 'boundary' points. For X to be considered solid, every neighborhood of any p ∈ X must be consistently three-dimensional and points with lower dimensional neighborhoods indicate a lack of solidity. Dimensional homogeneity of neighborhoods is guaranteed for the class of 'closed regular' sets, defined as sets equal to the closure of their interior. In simple terms, any X ⊂ R3 can be turned into a closed regular set or 'regularized' by taking the closure of its interior, and thus the modeling space of solids is mathematically defined to be the space of closed regular subsets of R3. Solids are required to be closed under the Boolean operations of union, intersection, and subtraction. Applying the standard Boolean operations to closed regular sets may not produce a closed regular set, but this problem can be solved by regularizing the result of applying the standard Boolean operations.
Thus a Boolean operation can be classified as 'Regularized' and 'Non-regularized'. Regularized Boolean operations are performed on the interior point sets, exclusive of the model boundaries. Non-regularized Boolean operations include interactions of model boundaries, and leave all boundary coincidences unresolved. This also keeps boundary faces that are internal to a union in the model.
In the above example, if a non-regular intersection is performed, then a planar face is returned by Boolean.
(define blank (solid:block 0 0 0 10 10 5))
(define tool (solid:block 3 3 5 7 7 8))
(bool:nonreg-intersect blank tool)
A non-regularized Boolean operation is capable of returning a 'non-manifold' or a 'lower' dimensional body.
One of the important applications is to create 'Cellular topology'. The following parts are created with Non-regularized Boolean, in which double-sided both-inside faces are introduced – and the internal regions can be represented as 'cells':