3 \page using_boolean_operations_page Boolean Operations
5 For a detailed description of Boolean operations refer to
6 <a href="SALOME_BOA_PA.pdf">this document</a>.
7 It provides a general review of the Partition and Boolean
8 operations algorithms, describes the usage methodology and highlights
9 major limitations of these operations.
11 You can use the following boolean operations for construction of more
12 complex geometrical objects (2D & 3D elements):
15 <li>\subpage fuse_operation_page "Fuse" - creates a shape from a list of shapes.</li>
16 <li>\subpage common_operation_page "Common" - transforms the common part
17 of a list of objects into an independent object.</li>
18 <li>\subpage cut_operation_page "Cut" - cuts one shape with
19 a list of others. </li>
20 <li>\subpage section_opeartion_page "Section" - creates a section between two shapes.</li>
23 You can use advanced TUI commands performing these operations
24 independently from each other:
26 <em>geompy.MakeFuseList(theShapesList, checkSelfInte, rmExtraEdges)</em>, where \em theShapesList is
27 the list of shapes for Fuse operation;
29 <em>geompy.MakeCommonList(theShapesList, checkSelfInte)</em>, where \em theShapesList is
30 the list of shapes for Common operation;
32 <em>geompy.MakeCutList(theMainShape, theShapesList, checkSelfInte)</em>, where \em
33 theMainShape is the object of the operation and \em theShapesList is
34 the list of tools for Cut operation;
36 <em>geompy.MakeSection(Shape1, Shape2, checkSelfInte)</em>, where \em Shape1 is the first
37 argument and \em Shape2 is the second argument of Section operation;
40 There are several TUI commands that can be used to perform boolean operations
41 with only two arguments. There is a general TUI command covering these
42 operations, which can be used alongside with separate commands for each
45 <em>geompy.MakeBoolean(Shape1, Shape2, Operation, checkSelfInte),</em> where \em
46 Shape1 is the first argument and \em Shape2 is the second argument of
47 a Boolean operation, \em Operation is the type of a Boolean operation (1
48 — Common, 2 — Cut, 3 — Fuse, 4 — Section).
51 Besides, you can use advanced TUI commands performing these operations
52 independently from each other:
54 <em>geompy.MakeFuse(Shape1, Shape2, checkSelfInte, rmExtraEdges)</em>, where \em Shape1 is the first
55 argument and \em Shape2 is the second argument of Fuse operation;
57 <em>geompy.MakeCommon(Shape1, Shape2, checkSelfInte)</em>, where \em Shape1 is the first
58 argument and \em Shape2 is the second argument of Common operation;
60 <em>geompy.MakeCut(Shape1, Shape2, checkSelfInte)</em>, where \em Shape1 is the first
61 argument and \em Shape2 is the second argument of Cut operation;
63 The flag \em checkSelfInte indicates whether the arguments should be checked for
64 self-intersection prior to an operation. Its default value is \em False, which
65 means that there is no need to check it. This option is provided to ensure that
66 an operation is performed on not self-intersected shapes as they are
67 not valid for boolean operations.
69 \note This algorithm does not find all types of self-intersections. It is tuned
70 to detect vertex/vertex, vertex/edge, edge/edge, vertex/face and edge/face
71 intersections. Face/face intersections detection is switched off as it
72 is a time-consuming operation that gives an impact on performance. To find
73 all self-intersections use \ref check_self_intersections_page
74 "Detect Self-intersection tool".
76 The flag \em rmExtraEdges is used for \em MakeFuseList and \em MakeFuse
77 operations only. It indicates if Remove Extra Edges operation should be
78 performed during the operation. Its default value is \em False, which
79 means that there is no need to do it.
81 \note \em rmExtraEdges is not available for \em MakeBoolean call with
82 operation type 3 (Fuse). \em MakeBoolean operation doesn't perform
83 Remove Extra Edges. So the call <em>geompy.MakeBoolean(Shape1, Shape2,
84 3, checkSelfInte)</em> is equivalent to <em>geompy.MakeFuse(Shape1,
85 Shape2, checkSelfInte, False)</em>.
87 Our <b>TUI Scripts</b> provide you with useful examples of the use of
88 \ref tui_boolean_operations_page "Boolean Operations".