Salome HOME
Join modifications from BR_Dev_For_4_0 tag V4_1_1.
[modules/geom.git] / doc / salome / gui / GEOM / input / shape_processing_operation.doc
1 /*!
2
3 \page shape_processing_operation_page Shape Processing
4
5 \n To produce a <b>Shape Processing</b> operation in the <b>Main Menu</b> 
6 select <b>Repair - > Shape Processing</b>.
7 \n This operation processes one or more shapes using various operators.
8
9 \n The \b Result will be a \b GEOM_Object.
10
11 \n <b>TUI Command:</b> <em>geompy.ProcessShape(Shape, Operators,
12 Parameters, Values),</em> where \em Shape is a processed shape, \em Operators
13 is a list of operators ("FixShape", "SplitClosedFaces", etc.),
14 \em Parameters is a list of parameters ("FixShape.Tolerance3d",
15 etc), \em Values is a list of values of parameters placed in the same
16 order as in the list of Parameters.
17
18 \n In this dialog box you can select the object that you need to
19 process, define its name and operators applied to it during
20 processing.
21
22 \image html repair1.png
23
24 <b>Operators and Parameters</b> (TUI names are given in brackets):
25
26 <ul>
27 <li><b>Fix Shape</b> (FixShape) - corrects invalid shapes.</li>
28 <ul>
29 <li><b>3D Tolerance</b> (FixShape.Tolerance3d) - work tolerance for
30 detection of the problems and correction of them.</li>
31 <li><b>Max 3D Tolerance</b> (FixShape.MaxTolerance3d)  - maximal
32 possible tolerance of the shape after correction.</li>
33 </ul>
34 <li><b>Fix Face Size</b> (FixFaceSize) - removes small faces, such as
35 spots and strips.</li>
36 <ul>
37 <li><b>Tolerance</b> (FixFaceSize.Tolerance) - defines minimum
38 possible face size.</li>
39 </ul>
40 <li><b>Drop Small Edges</b> (DropSmallEdges) - removes edges, which
41 merge with neighbouring edges.</li>
42 <ul>
43 <li><b>3D Tolerance</b> (DropSmallEdges.Tolerance3d) - defines minimum
44 possible distance between two parallel edges.</li>
45 </ul>
46 <li><b>Split Angle</b> (SplitAngle) - splits faces based on conical
47 surfaces, surfaces of revolution and cylindrical surfaces in segments
48 using a certain angle.</li>
49 <ul>
50 <li><b>Angle</b> (SplitAngle.Angle) - the central angle of the
51 resulting segments (i.e. we obtain two segments if Angle=180, four if
52 Angle=90, etc).</li>
53 <li><b>Max. Tolerance</b> (SplitAngle.MaxTolerance) - maximum possible
54 tolerance among the resulting segments.</li>
55 </ul>
56 <li><b>Split Closed Faces</b> (SplitClosedFaces) - splits closed faces
57 in segments. The number of segments depends on the number of splitting
58 points.</li>
59 <ul>
60 <li><b>Number of splitting points</b> (SplitClosedFaces.NbSplitPoints) - the number of splitting points.</li>
61 </ul>
62 <li><b>Split Continuity</b> (SplitContinuity) - splits shapes to
63 reduce continuities of curves and surfaces.</li>
64 <ul>
65 <li><b>3D Tolerance</b> (SplitContinuity.Tolerance3d) - 3D tolerance for correction of geometry.</li>
66 <li><b>Surface Continuity</b> (SplitContinuity.SurfaceContinuity) - required continuity for surfaces.</li>
67 <li><b>Curve Continuity</b> (SplitContinuity.CurveContinuity) - required continuity for curves.</li>
68 </ul>
69 \n This and the previous parameters can take the following values:
70 \par
71 <b>Parametric Continuity</b>
72 \n \b C0 (Positional Continuity): curves are joined (the end positions
73 of curves or surfaces are coincidental. The curves or surfaces may
74 still meet at an angle, giving rise to a sharp corner or edge).
75 \n \b C1 (Tangential Continuity): first derivatives are equal (the end
76 vectors of curves or surfaces are parallel, ruling out sharp edges).
77 \n \b C2 (Curvature Continuity): first and second derivatives are
78 equal (the end vectors of curves or surfaces are of the same
79 magnitude).
80 \n \b CN N-th derivatives are equal (both the direction and the
81 magnitude of the Nth derivatives of curves or surfaces (d/du C(u)) are
82 the same at junction.
83 \par
84 <b>Geometric Continuity</b>
85 \n \b G1: first derivatives are proportional at junction.
86 \n The curve tangents thus have the same direction, but not necessarily
87 the same magnitude. i.e., C1'(1) = (a,b,c) and C2'(0) = (k*a, k*b,
88 k*c).
89 \n \b G2: first and second derivatives are proportional at junction.
90 \n As the names imply, geometric continuity requires the geometry to
91 be continuous, while parametric continuity requires that the
92 underlying parameterization was continuous as well.
93 \n Parametric continuity of order n implies geometric continuity of
94 order n, but not vice-versa. 
95
96 <li><b>Bspline Restriction</b> (BsplineRestriction) - converts curves
97 and surfaces to Bsplines and processes them with the following
98 parameters:</li>
99 <ul>
100 <li><b>Surface Mode</b> (BSplineRestriction.SurfaceMode) -
101 approximation of surfaces if restriction is necessary.</li>
102 <li><b>3D Curve Mode</b> (BSplineRestriction.Curve3dMode) - conversion
103 of any 3D curve to BSpline and approximation.</li>
104 <li><b>2D Curve Mode</b> (BSplineRestriction.Curve2dMode) - conversion
105 of any 2D curve to BSpline and approximation.</li>
106 <li><b>3D Tolerance</b> (BSplineRestriction.Tolerance3d) - defines the
107 possibility of surfaces and 3D curves approximation with the specified
108 parameters.</li>
109 <li><b>2D Tolerance</b> (BSplineRestriction.Tolerance2d) - defines the
110 possibility of surfaces and 2D curves approximation with the specified
111 parameters.</li>
112 <li><b>Required Degree</b> (BSplineRestriction.RequiredDegree) -
113 required degree of the resulting BSplines.</li>
114 <li><b>Required number of segments</b>
115 (BSplineRestriction.RequiredNbSegments) - required maximum number of
116 segments of resultant BSplines.</li>
117 <li><b>3D Continuity</b> (BSplineRestriction.Continuity3d) -
118 continuity of the resulting surfaces and 3D curves.</li>
119 <li><b>2D Continuity</b> (BSplineRestriction.Continuity2d) -
120 continuity of the resulting 2D curves.</li>
121 </ul>
122 <li><b>To Bezier</b> (ToBezier) - converts curves and surfaces of any
123 type to Bezier curves and surfaces.</li>
124 <ul>
125 <li><b>Surface Mode</b> (ToBezier.SurfaceMode) - if checked in, allows
126 conversion of surfaces.</li>
127 <li><b>3D Curve Mode</b> (ToBezier.Curve3dMode) - if checked in,
128 allows conversion of 3D curves.</li>
129 <li><b>2D Curve Mode</b> (ToBezier.Curve2dMode) - if checked in,
130 allows conversion of 2D curves.</li>
131 <li><b>Max Tolerance</b> (ToBezier.MaxTolerance) - defines tolerance
132 for detection and correction of problems.</li>
133 </ul>
134 <li><b>Same Parameter</b> (SameParameter) - fixes edges of 2D and 3D
135 curves not having the same parameter.</li>
136 <ul>
137 <li><b>3D Tolerance</b> (SameParameter.Tolerance3d) - defines tolerance for fixing of edges.</li>
138 </ul>
139 </ul>
140
141 \n <b>Example:</b>
142
143 \image html image154.jpg
144 <center><em>Shape before applying Shape Processing (FixShape
145 operator). View # 1.</em></center>
146
147 \image html image156.jpg
148 <center><em>Shape before applying Shape Processing (FixShape
149 operator). View # 2.</em></center>
150
151 \image html image160.jpg
152 <center><em>The same shape after applying Shape
153 Processing.</em></center>
154
155 Our <b>TUI Scripts</b> provide you with useful examples of the use of
156 \ref tui_shape_processing "Repairing Operations".
157
158 */