Types of Boolean
There are three types of Boolean operations:
Addition
This operation results in a body which is the union of all pieces of the bodies participating in the operation.
Subtraction
This operation subtracts one body from another body.
Intersection
This operation results in the body which is the intersection of the participating bodies, being their common part.
Boolean operands
The bodies combined in a Boolean are called operands of the Boolean operation. Operands of a Boolean are the target and the tool. The bodies that are worked on are called Target of a Boolean. The bodies used for the manipulations are called Tool. Different result is obtained, depending on which of the body was the target and which was the tool.
1. Target body
2. Tool body
1. Target body
2. Tool body
A Boolean can also be defined on a set of bodies, some of which are selected as the target and other as the tool. In such an operation, all targets are united in one body, and all tools are united in another one. Then, a Boolean is performed on these bodies. This results in a single multiple-connected body.
1. Target bodies
2. Tool bodies
3. Result of Boolean Subtraction on target and tool sets (multiple-connected body)
Global and local Boolean operations
If surface or solid bodies are selected as operands, we will call such instances of the Boolean operation Global. When creating such a Boolean operation, the system automatically determines which faces of the bodies are involved in the operation, and finds their intersections. If a Boolean involves geometrically complex bodies or the large number of operands, then the search for all intersections may noticeably delay the command execution.
Besides the Global Boolean operation, T-FLEX also introduces the Local Boolean operation. Unlike the Global Boolean operation whose operands are always bodies, the Local Boolean operation allows selecting faces, besides the body operands. The operand faces can be selected with the help of the tab Faces in the operation's parameters. In some cases, use of the Local Boolean operation saves considerable time on the model regeneration, as compared with the Global Boolean operation, since the intersections will be searched only among the specified faces when processing the operation. For example, to make a hole in a rather complicated body, you can specify the faces to be intersected in the operation parameters if you know in advance that just few faces will be intersected.
You need to be careful when selecting faces for the Local Boolean operation. An invalid body may result from incorrect selection of faces.
Blue color - faces of target body, yellow color - faces of tool body
Selecting specific faces for the operands of a Local Boolean operation with the option Cut by Faces of Target Bodies turned on, allows creating bodies like those shown on the diagram below. In this case, the intersection lines between the operands' boundaries will be determined first, and then closed loops will be formed along these intersection lines and the boundaries of the target operands' faces, in order to create a Boolean operation.
1. Target body faces
2. Tool body faces
3. Result of local Boolean operation Subtraction
In some cases, the option Use Neighbor Faces can be conveniently used for the target or the tool. All you need is select one face of an operand, and the system will automatically define the neighboring faces in such a way, that the intersection lines between the operand faces form closed loops. In this case, changes in the number of faces making a closed loop due to operand modifications, will not invalidate the result of the Boolean operation.
1. Target body faces
2. Neighbor faces defined by the system
3. Selected face of tool body
4. Closed cycle from edges of intersection of faces of bodies
When intersected, operand faces create common edges. Those edges divide the bodies of the operands into pieces. There are inner pieces (shared by the operands) and outer pieces of operands. When creating a Boolean operation, you can specify the outer pieces of the operands that will be left in the resulting body, or, on the contrary, excluded from it. A piece of an operand is defined by topology elements, such as vertices, edges are faces. To select a piece of an operand, you need to specify one of such elements in the operation parameters on the tab Selections. The diagram below shows an example of using a selective Boolean Addition operation, whose execution results in a body containing only selected pieces of the tool.
1. Target body
2. Tool body
3. Edges defining parts of the tool body to be left in the resulting body
4. Only the selected parts of the tool body are left in the resulting body
In some cases, the selected topology element does not explicitly defines the desired piece. For example, as shown on the diagram below, the selected face belongs to several outer pieces of the tool. To uniquely determined the desired piece, one needs to create a 3D node on this face, and then select this 3D node by the option Select point that indicates operand region. In this case, you do not have to select the face.
1. 3D node defining part of the operand
2. The edge of the operand, which does not uniquely determine the necessary part
3. In the resulting body, the part of the operand defined by the 3D node is excluded
Missing operands
When creating a Boolean operation, you can turn on the option Allow missing operand. This technique is often used in parametric models, when one of the model's elements needs to be excluded in some instances. As shown on the diagram below, a nut can be in two instances: with and without grooving. To realize both instances in one model, one can suppress the tool, while maintaining the rest of the consequent operations based on the Boolean (in the example, this is the cosmetic thread on the face of the Boolean operation).
If this option is turned off, then an error will be output when recreating this Boolean operation with the operand suppressed.
1. Target body
2. Tool body
3. Result of Subtraction operation
4. Result of applying cosmetic thread on a face of the Boolean (Instance 1)
5. Result of suppressing the tool body (Instance 2)