Salome HOME
Fix problem with table of contents resizing
[modules/geom.git] / doc / salome / gui / GEOM / shape_processing.htm
1 <!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">\r
2 \r
3 <html>\r
4 \r
5 <head>\r
6 <title>Shape Processing</title>\r
7 <meta http-equiv="content-type" content="text/html; charset=windows-1252">\r
8 <meta name="generator" content="RoboHelp by eHelp Corporation www.ehelp.com">\r
9 <link rel="stylesheet" href="default_ns.css"><script type="text/javascript" language="JavaScript" title="WebHelpSplitCss">\r
10 <!--\r
11 if (navigator.appName !="Netscape")\r
12 {   document.write("<link rel='stylesheet' href='default.css'>");}\r
13 //-->\r
14 </script>\r
15 <style type="text/css">\r
16 <!--\r
17 img_whs1 { border:none; width:25px; height:24px; border-style:none; }\r
18 p.whs2 { font-size:12pt; }\r
19 p.whs3 { font-size:12pt; margin-left:40px; }\r
20 img_whs4 { border:none; width:403px; height:469px; float:none; border-style:none; }\r
21 p.whs5 { font-size:12pt; font-weight:bold; }\r
22 ul.whs6 { list-style:disc; }\r
23 p.whs7 { font-size:12pt; margin-left:48px; }\r
24 p.whs8 { font-size:12pt; margin-left:0px; }\r
25 p.whs9 { font-size:12pt; margin-left:0px; font-weight:bold; }\r
26 p.whs10 { font-size:12pt; font-weight:bold; margin-left:48px; }\r
27 p.whs11 { font-size:12pt; margin-left:48px; font-weight:normal; }\r
28 p.whs12 { font-size:12pt; margin-left:88px; font-weight:normal; }\r
29 p.whs13 { font-size:12pt; margin-left:0px; font-weight:normal; }\r
30 p.whs14 { font-size:12pt; margin-left:48px; font-weight:bold; }\r
31 p.whs15 { font-size:12pt; font-weight:bold; margin-left:0px; }\r
32 img_whs16 { border:none; width:300px; height:214px; border-style:none; }\r
33 img_whs17 { border:none; width:244px; height:214px; border-style:none; }\r
34 p.whs18 { font-family:'Times New Roman' , serif; font-size:14pt; }\r
35 p.whs19 { font-family:'Times New Roman' , serif; font-size:12pt; }\r
36 img_whs20 { border:none; width:239px; height:214px; border-style:none; }\r
37 p.whs21 { font-weight:bold; }\r
38 -->\r
39 </style><script type="text/javascript" language="JavaScript">\r
40 <!--\r
41 if ((navigator.appName == "Netscape") && (parseInt(navigator.appVersion) == 4))\r
42 {\r
43   var strNSS = "<style type='text/css'>";\r
44   strNSS += "p.whs8 {margin-left:1pt; }";\r
45   strNSS += "p.whs9 {margin-left:1pt; }";\r
46   strNSS += "p.whs13 {margin-left:1pt; }";\r
47   strNSS += "p.whs15 {margin-left:1pt; }";\r
48   strNSS +="</style>";\r
49   document.write(strNSS);\r
50 }\r
51 //-->\r
52 </script>\r
53 <script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">\r
54 <!--\r
55 function reDo() {\r
56   if (innerWidth != origWidth || innerHeight != origHeight)\r
57      location.reload();\r
58 }\r
59 if ((parseInt(navigator.appVersion) == 4) && (navigator.appName == "Netscape")) {\r
60         origWidth = innerWidth;\r
61         origHeight = innerHeight;\r
62         onresize = reDo;\r
63 }\r
64 onerror = null; \r
65 //-->\r
66 </script>\r
67 <style type="text/css">\r
68 <!--\r
69 div.WebHelpPopupMenu { position:absolute; left:0px; top:0px; z-index:4; visibility:hidden; }\r
70 p.WebHelpNavBar { text-align:right; }\r
71 -->\r
72 </style><script type="text/javascript" language="javascript1.2" src="whmsg.js"></script>\r
73 <script type="text/javascript" language="javascript" src="whver.js"></script>\r
74 <script type="text/javascript" language="javascript1.2" src="whproxy.js"></script>\r
75 <script type="text/javascript" language="javascript1.2" src="whutils.js"></script>\r
76 <script type="text/javascript" language="javascript1.2" src="whtopic.js"></script>\r
77 <script type="text/javascript" language="javascript1.2">\r
78 <!--\r
79 if (window.gbWhTopic)\r
80 {\r
81         if (window.setRelStartPage)\r
82         {\r
83         addTocInfo("Geometry module\nTransforming geometrical objects\nRepairing Operations\nShape Processing");\r
84 addButton("show",BTN_IMG,"Show","","","","",0,0,"whd_show0.gif","whd_show2.gif","whd_show1.gif");\r
85 addButton("hide",BTN_IMG,"Hide","","","","",0,0,"whd_hide0.gif","whd_hide2.gif","whd_hide1.gif");\r
86 \r
87         }\r
88 \r
89 \r
90         if (window.setRelStartPage)\r
91         {\r
92         setRelStartPage("index.htm");\r
93 \r
94                 autoSync(1);\r
95                 sendSyncInfo();\r
96                 sendAveInfoOut();\r
97         }\r
98 \r
99 }\r
100 else\r
101         if (window.gbIE4)\r
102                 document.location.reload();\r
103 //-->\r
104 </script>\r
105 </head>\r
106 <body><script type="text/javascript" language="javascript1.2">\r
107 <!--\r
108 if (window.writeIntopicBar)\r
109         writeIntopicBar(4);\r
110 //-->\r
111 </script>\r
112 <h1><span style="font-size: 12pt;"><font size=3 style="font-size:12pt;"><img src="image41.gif" width="25px" height="24px" border="0" class="img_whs1"></font></span>Shape Processing</h1>\r
113 \r
114 <p class="whs2"><b style="font-weight: normal;">T</b>o produce \r
115  a <span style="font-weight: bold;"><B>Shape Processing</B></span> operation in \r
116  the Main Menu select <span style="font-weight: bold;"><B>Repair - &gt;</B></span> \r
117  <span style="font-weight: bold;"><B>Shape Processing.</B></span></p>\r
118 \r
119 <p class="whs2">This operation processes one or more shapes \r
120  using various operators.</p>\r
121 \r
122 <p class="whs2">&nbsp;</p>\r
123 \r
124 <p class="whs2"><b><span style="font-weight: normal;">The</span> \r
125  Result <span style="font-weight: normal;">will be a</span></b><b> <span \r
126  style="font-weight: bold;"><B>GEOM_Object</b>.</B></span></p>\r
127 \r
128 <p class="whs2">&nbsp;</p>\r
129 \r
130 <p class="whs2"><b style="font-weight: bold;">TUI Command:</b><i> \r
131  </i><span style="font-style: italic;"><I>geompy.ProcessShape(Shape, Operators, \r
132  Parameters, Values)</I></span>, where Shape is a processed shape, Operators \r
133  is a list of operators (&quot;FixShape&quot;, &quot;SplitClosedFaces&quot;, \r
134  etc.), Parameters is a list of parameters (\93FixShape.Tolerance3d\94, etc), \r
135  Values is a list of values of parameters placed in the same order as in \r
136  the list of Parameters .</p>\r
137 \r
138 <p class="whs2">&nbsp;</p>\r
139 \r
140 <p class="whs2">In this dialog box you can select the object \r
141  that you need to process, define its name and operators applied to it \r
142  during processing. </p>\r
143 \r
144 <p class="whs2">&nbsp;</p>\r
145 \r
146 <p class="whs3"><img src="pics/repair1.png" x-maintain-ratio="TRUE" width="403px" height="469px" border="0" class="img_whs4"></p>\r
147 \r
148 <p class="whs3">&nbsp;</p>\r
149 \r
150 <p class="whs5">Operators and Parameters<span \r
151  style="font-weight: normal;"> (TUI names are given in brackets)</span></p>\r
152 \r
153 <p class="whs2">&nbsp;</p>\r
154 \r
155 <ul type="disc" class="whs6">\r
156         \r
157         <li class=kadov-p><p class="whs2"><span style="font-weight: bold;"><B>Fix \r
158  Shape</B></span> (FixShape) - corrects invalid shapes. </p></li>\r
159         \r
160         <li class=kadov-p><p class="whs7"><span \r
161  style="font-weight: bold;"><B>3D Tolerance</B></span> (FixShape.Tolerance3d) \r
162  - work tolerance for detection of the problems and correction of them.</p></li>\r
163         \r
164         <li class=kadov-p><p class="whs7"><span \r
165  style="font-weight: bold;"><B>Max 3D Tolerance</B></span> (FixShape.MaxTolerance3d) \r
166  &nbsp;- maximal \r
167  possible tolerance of the shape after correction.</p></li>\r
168         \r
169         <li class=kadov-p><p class="whs8"><span \r
170  style="font-weight: bold;"><B>Fix Face Size</B></span> (FixFaceSize) - removes \r
171  small faces, such as spots and strips. </p></li>\r
172         \r
173         <li class=kadov-p><p class="whs7"><span \r
174  style="font-weight: bold;"><B>Tolerance</B></span> (FixFaceSize.Tolerance) - \r
175  defines minimum possible face size.</p></li>\r
176         \r
177         <li class=kadov-p><p class="whs8"><span \r
178  style="font-weight: bold;"><B>Drop Small Edges</B></span> (DropSmallEdges) - \r
179  removes edges, which merge with neighbouring edges.</p></li>\r
180         \r
181         <li class=kadov-p><p class="whs7"><span \r
182  style="font-weight: bold;"><B>3D Tolerance</B></span> (DropSmallEdges.Tolerance3d) \r
183  - defines minimum possible distance between two parallel edges.</p></li>\r
184         \r
185         <li class=kadov-p><p class="whs8"><span \r
186  style="font-weight: bold;"><B>Split Angle</B></span> (SplitAngle) - splits faces \r
187  based on conical surfaces, surfaces of revolution and cylindrical surfaces \r
188  in segments using a certain angle . &nbsp;</p></li>\r
189         \r
190         <li class=kadov-p><p class="whs7"><span \r
191  style="font-weight: bold;"><B>Angle</B></span> (SplitAngle.Angle) - the central \r
192  angle of the resulting segments (i.e. we obtain two segments if Angle=180, \r
193  four if Angle=90, etc).</p></li>\r
194         \r
195         <li class=kadov-p><p class="whs7"><span \r
196  style="font-weight: bold;"><B>Max. Tolerance</B></span> (SplitAngle.MaxTolerance) \r
197  - maximum possible tolerance among the resulting segments.</p></li>\r
198         \r
199         <li class=kadov-p><p class="whs9">Split Closed Faces \r
200  <span style="font-weight: normal;">(SplitClosedFaces)</span> - <span style="font-weight: normal;">splits \r
201  closed faces in segments. The number of segments depends on the number \r
202  of splitting points.</span></p></li>\r
203         \r
204         <li class=kadov-p><p class="whs7"><span \r
205  style="font-weight: bold;"><B>Number of splitting points</B></span> (SplitClosedFaces.NbSplitPoints) \r
206  - the number of splitting points.</p></li>\r
207         \r
208         <li class=kadov-p><p class="whs9">Split Continuity<span \r
209  style="font-weight: normal;"> (SplitContinuity) - splits shapes to reduce \r
210  continuities of curves and surfaces.</span></p></li>\r
211         \r
212         <li class=kadov-p><p class="whs10">3D Tolerance<span style="font-weight: normal;"> \r
213  (SplitContinuity.Tolerance3d) - 3D tolerance for correction of geometry.</span></p></li>\r
214         \r
215         <li class=kadov-p><p class="whs10">Surface Continuity<span \r
216  style="font-weight: normal;"> (SplitContinuity.SurfaceContinuity) - required \r
217  continuity for surfaces.</span></p></li>\r
218         \r
219         <li class=kadov-p><p class="whs10">Curve Continuity <span \r
220  style="font-weight: normal;">(SplitContinuity.CurveContinuity)</span> \r
221  - <span style="font-weight: normal;">required continuity for curves.</span></p></li>\r
222 </ul>\r
223 \r
224 <p class="whs11">This and the previous parameters can \r
225  take the following values:</p>\r
226 \r
227 <p class="whs12"><span style="font-size: 12pt; font-weight: normal;"><font size=3 style="font-size:12pt;"><span \r
228  style="font-size: 12pt; font-weight: normal;"><font size=3 style="font-size:12pt;">P</font></span>arametric Continuity \r
229  </font></span></p>\r
230 \r
231 <p class="whs12"><span style="font-weight: bold;"><B>C0</B></span> \r
232  (Positional Continuity): curves are joined (the end positions of curves \r
233  or surfaces are coincidental. The curves or surfaces may still meet at \r
234  an angle, giving rise to a sharp corner or edge).</p>\r
235 \r
236 <p class="whs12"><span style="font-weight: bold;"><B>C1</B></span> \r
237  (Tangential Continuity): first derivatives are equal (the end vectors \r
238  of curves or surfaces are parallel, ruling out sharp edges). </p>\r
239 \r
240 <p class="whs12"><span style="font-weight: bold;"><B>C2</B></span> \r
241  (Curvature Continuity): first and second derivatives are equal (the end \r
242  vectors of curves or surfaces are of the same magnitude).</p>\r
243 \r
244 <p class="whs12"><span style="font-weight: bold;"><B>CN</B></span> \r
245  N-th derivatives are equal (both the direction and the magnitude of the \r
246  Nth derivatives of curves or surfaces (d/du C(u)) are the same at junction.</p>\r
247 \r
248 <p class="whs12">Geometric Continuity </p>\r
249 \r
250 <p class="whs12"><span style="font-weight: bold;"><B>G1</B></span>: \r
251  first derivatives are proportional at junction</p>\r
252 \r
253 <p class="whs12">The curve tangents thus have the same \r
254  direction, but not necessarily the same magnitude. i.e., C1'(1) = (a,b,c) \r
255  and C2'(0) = (k*a, k*b, k*c). </p>\r
256 \r
257 <p class="whs12"><span style="font-weight: bold;"><B>G2</B></span>: \r
258  first and second derivatives are proportional at junction </p>\r
259 \r
260 <p class="whs12">As the names imply, geometric continuity \r
261  requires the geometry to be continuous, while parametric continuity requires \r
262  that the underlying parameterization was continuous as well. </p>\r
263 \r
264 <p class="whs12">Parametric continuity of order n implies \r
265  geometric continuity of order n, but not vice-versa. </p>\r
266 \r
267 <ul type="disc" class="whs6">\r
268         \r
269         <li class=kadov-p><p class="whs13"><span style="font-weight: bold;"><B>Bspline \r
270  Restriction</B></span> (BsplineRestriction) - converts curves and surfaces \r
271  to Bsplines and processes them with the following parameters:</p></li>\r
272         \r
273         <li class=kadov-p><p class="whs14">Surface Mode<span style="font-weight: normal;"> \r
274  (BSplineRestriction.SurfaceMode) - approximation of surfaces if restriction \r
275  is necessary.</span></p></li>\r
276         \r
277         <li class=kadov-p><p class="whs14">3D Curve Mode<span \r
278  style="font-weight: normal;"> (BSplineRestriction.Curve3dMode) - conversion \r
279  of any 3D curve to BSpline and approximation.</span></p></li>\r
280         \r
281         <li class=kadov-p><p class="whs14">2D Curve Mode<span \r
282  style="font-weight: normal;"> (BSplineRestriction.Curve2dMode) -</span> \r
283  <span style="font-weight: normal;">conversion of any 2D curve to BSpline \r
284  and approximation.</span></p></li>\r
285         \r
286         <li class=kadov-p><p class="whs11"><span style="font-weight: bold;"><B>3D \r
287  Tolerance</B></span> (BSplineRestriction.Tolerance3d) - defines the possibility \r
288  of surfaces and 3D curves approximation with the specified parameters.</p></li>\r
289         \r
290         <li class=kadov-p><p class="whs11"><span style="font-weight: bold;"><B>2D \r
291  Tolerance</B></span> (BSplineRestriction.Tolerance2d) - defines the possibility \r
292  of surfaces and 2D curves approximation with the specified parameters.</p></li>\r
293         \r
294         <li class=kadov-p><p class="whs11"><span style="font-weight: bold;"><B>Required \r
295  Degree</B></span> (BSplineRestriction.RequiredDegree) - required degree of \r
296  the resulting BSplines.</p></li>\r
297         \r
298         <li class=kadov-p><p class="whs11"><span style="font-weight: bold;"><B>Required \r
299  number of segments</B></span> (BSplineRestriction.RequiredNbSegments) - required \r
300  maximum number of segments of resultant BSplines</p></li>\r
301         \r
302         <li class=kadov-p><p class="whs11"><span style="font-weight: bold;"><B>3D \r
303  Continuity</B></span> (BSplineRestriction.Continuity3d) - continuity of the \r
304  resulting surfaces and 3D curves.</p></li>\r
305         \r
306         <li class=kadov-p><p class="whs11"><span style="font-weight: bold;"><B>2D \r
307  Continuity</B></span> (BSplineRestriction.Continuity2d) - continuity of the \r
308  resulting 2D curves.</p></li>\r
309         \r
310         <li class=kadov-p><p class="whs8"><span \r
311  style="font-weight: bold;"><B>To Bezier</B></span> (ToBezier) - converts curves \r
312  and surfaces of any type to Bezier curves and surfaces. </p></li>\r
313         \r
314         <li class=kadov-p><p class="whs14">Surface Mode<span style="font-weight: normal;"> \r
315  (ToBezier.SurfaceMode) - if checked in, allows conversion of surfaces.</span></p></li>\r
316         \r
317         <li class=kadov-p><p class="whs14">3D Curve Mode <span \r
318  style="font-weight: normal;">(ToBezier.Curve3dMode) - if checked in, allows \r
319  conversion of 2D curves.</span></p></li>\r
320         \r
321         <li class=kadov-p><p class="whs14">2D Curve Mode <span \r
322  style="font-weight: normal;">(ToBezier.Curve2dMode) - if checked in, allows \r
323  conversion of 3D curves.</span></p></li>\r
324         \r
325         <li class=kadov-p><p class="whs14">Max Tolerance<span \r
326  style="font-weight: normal;"> (ToBezier.MaxTolerance) </span>- <span style="font-weight: normal;">defines</span> \r
327  <span style="font-weight: normal;">tolerance for detection and correction \r
328  of problems.</span> </p></li>\r
329         \r
330         <li class=kadov-p><p class="whs15">Same Parameter<span \r
331  style="font-weight: normal;"> (SameParameter) \96 &nbsp;fixes \r
332  edges of 2D and 3D curves not having the same parameter.</span> </p></li>\r
333         \r
334         <li class=kadov-p><p class="whs7"><span \r
335  style="font-weight: bold;"><B>3D Tolerance</B></span> (SameParameter.Tolerance3d) \r
336  \96 defines<span style="font-weight: bold;"> <B></B></span>tolerance for fixing \r
337  of edges.<span style="font-weight: bold;"> <B></B></span></p></li>\r
338 </ul>\r
339 \r
340 <p class="whs2">&nbsp;</p>\r
341 \r
342 <p class="whs2"><b style="font-weight: bold;">Dialog Box:</b></p>\r
343 \r
344 <p class="whs2">&nbsp;</p>\r
345 \r
346 <p class="whs3"><img src="pics/repair1.png" x-maintain-ratio="TRUE" width="403px" height="469px" border="0" class="img_whs4"></p>\r
347 \r
348 <p class="whs3">&nbsp;</p>\r
349 \r
350 <p class="whs2">&nbsp;</p>\r
351 \r
352 <p class="whs2"><b style="font-weight: bold;">Example:</b></p>\r
353 \r
354 <p>&nbsp;</p>\r
355 \r
356 <p class="whs2">Shape before applying Shape Processing (FixShape \r
357  operator).</p>\r
358 \r
359 <p class="whs2">&nbsp;</p>\r
360 \r
361 <p class="whs3"><img src="image154.jpg" width="300px" height="214px" border="0" class="img_whs16"> &nbsp;&nbsp;&nbsp;<img src="image156.jpg" width="244px" height="214px" border="0" class="img_whs17"></p>\r
362 \r
363 <p class="whs18">&nbsp;</p>\r
364 \r
365 <p class="whs19">The \r
366  same shape after applying Shape Processing.</p>\r
367 \r
368 <p class="whs18">&nbsp;</p>\r
369 \r
370 <p class="whs3"><img src="image160.jpg" width="239px" height="214px" border="0" class="img_whs20"></p>\r
371 \r
372 <p class="whs21">&nbsp;</p>\r
373 \r
374 <p class="whs21"><span style="font-weight: normal;">Our</span> \r
375  TUI Scripts<span style="font-weight: normal;"> provide you with useful \r
376  examples of the use of</span> <a href="repairing_operations.htm#bookmark">Repairing \r
377  Operations</a>. </p>\r
378 \r
379 <p>&nbsp;</p>\r
380 \r
381 <script type="text/javascript" language="javascript1.2">\r
382 <!--\r
383 if (window.writeIntopicBar)\r
384         writeIntopicBar(0);\r
385 //-->\r
386 </script>\r
387 </body>\r
388 </html>\r