Salome HOME
9af094e702866038a70e4d4d54755f43e8f05316
[modules/geom.git] / doc / salome / gui / GEOM / input / partition.doc
1 /*!
2
3 \page partition_page Partition
4
5 For detail description of the Partition operation please 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 highlighs
9 major limitations of these operations.
10
11 To produce a \b Partition in the <b>Main Menu</b> select <b>Operations - > Partition</b>
12
13 This operation builds a compound by intersection of several shapes
14 with a set of tool objects or with a plane.
15 The \b Result will be a \b GEOM_Object.
16
17 <br><h2>Intersection of two shapes.</h2>
18
19 \image html partition1.png
20
21 <b>Arguments:</b> Name + 2 lists of shapes (the shapes from the
22 first list will be intersected with the shapes from the second list) +
23 Resulting Type of shape.
24
25 As far as the intersection of two objects can produce any type of
26 geometrical objects, <b>Resulting type</b> box allows choosing the
27 preferrable result, i.e. a solid, a shell, a list of faces, etc.
28
29 The <b>Resulting type</b> has to be equal or lower than the type of the
30 \em Objects. In other words, if the \em Objects don't contain any
31 shape of this type, Partition fails.
32
33 <b>Keep shapes of lower type</b> checkbox manages standalone shapes of
34 type other than the \em Limit. If it is checked, lower dimension
35 objects will be preserved, else they will be lost.
36
37 For example, you partition a box (Solid) and a face (Face)
38 without any tool (the box is split in two parts by the shape). If you
39 choose the Resulting Type "Solid", you will
40 obtain a compound of two solids, but if you also check <b>Keep shapes of lower
41 type</b> checkbox, you will obtain a compound of two solids and one
42 face (there will be a hole in the resulting face, where the original
43 face intersects with the box, see the corresponding \ref partition_picture_3 "picture" below).
44
45 <b>No sub-shapes intersection (Compounds only)</b> check box affects
46 only input shapes of the Compound type. If this option is switched off (default
47 behavior) each input compound will be automatically exploded into
48 sub-shapes and the intersection between these shapes will be also
49 computed. If this option is switched on, the intersection between
50 sub-shapes will not be performed. In this case the Partition algorithm
51 will work faster, but the result might differ from the default behavior.
52
53  <b>Advanced option:</b>
54    \ref restore_presentation_parameters_page "Set presentation parameters and sub-shapes from arguments".
55
56 \note Partition is a complex operation, so its result of it depends
57       on the quality of the initial shapes. Sometimes, if partition fails,
58       such healing operations as <b>Shape Processing</b>
59       and <b>Limit Tolerance</b> can help to attune source shapes to obtain correct result of the Partition.
60       See also \ref tui_limit_tolerance "TUI example" of shape healing.
61
62 <b>TUI Command (with sub-shapes intersection):</b>
63
64 <em>geompy.MakePartition(ListOfShapes, ListOfTools, ListOfKeepInside,
65 ListOfRemoveInside, Limit, RemoveWebs, ListOfMaterials,
66 KeepNonlimitShapes)</em>
67
68 <b>TUI Command (without sub-shapes intersection):</b>
69
70 <em>geompy.MakePartitionNonSelfIntersectedShape(ListOfShapes,
71 ListOfTools, ListOfKeepInside, ListOfRemoveInside, Limit, RemoveWebs,
72 ListOfMaterials, KeepNonlimitShapes)</em>
73
74 Here,
75 - \em ListOfShapes is a list of shapes to be intersected
76 - \em ListOfTools is a list of shapes to intersect the shapes from
77 \em ListOfShapes
78 - \em Limit is a Type of resulting shapes
79 - \em KeepNonlimitShapes is a flag that allows to preserve standalone
80 shapes of low dimension (than \em Limit) in the result.
81 - Other parameters are obsolete and kept only for compatibility with
82 previous versions of SALOME.
83
84 <br><h2>Intersection of a Shape and a Plane.</h2>
85
86 \image html partition2.png
87
88 <b>Arguments:</b> Name + 1 shape to be intersected + 1 cutting plane.
89
90 <b>Advanced option:</b>
91 \ref restore_presentation_parameters_page "Set presentation parameters and sub-shapes from arguments".
92
93 <b>TUI Command:</b>
94
95 <em>geompy.MakeHalfPartition(Shape, Plane)</em>, where:
96 - \em Shape is a source shape to be intersected by the \em Plane
97 - \em Plane is a tool shape, to intersect the \em Shape.
98
99 <b>Examples:</b>
100
101 \image html partitionsn1.png "Box intersected by a plane"
102
103 \image html partitionsn2.png "Result of intersection"
104
105 \anchor partition_picture_3
106 \image html partitionsn3.png "Result of intersection of a box and a plane (both as \em Objects, no tools) with the Resulting type \em Solid and checked 'Keep shapes of lower type'"
107
108 Our <b>TUI Scripts</b> provide you with useful examples of \ref tui_partition "Basic Operations".
109
110 */