Salome HOME
Porting GUI documentation on Doxygen tool.
[modules/smesh.git] / doc / salome / gui / SMESH / extrusion_along_a_path.htm
1 <!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">
2
3 <html>
4
5 <head>
6 <title>Extrusion along a path</title>
7 <meta http-equiv="content-type" content="text/html; charset=windows-1252">
8 <meta name="generator" content="RoboHelp by eHelp Corporation www.ehelp.com">
9 <link rel="stylesheet" href="default_ns.css"><script type="text/javascript" language="JavaScript" title="WebHelpSplitCss">
10 <!--
11 if (navigator.appName !="Netscape")
12 {   document.write("<link rel='stylesheet' href='default.css'>");}
13 //-->
14 </script>
15 <style type="text/css">
16 <!--
17 img_whs1 { border:none; width:27px; height:24px; border-style:none; }
18 img_whs2 { border:none; width:387px; height:334px; float:none; border-style:none; }
19 ul.whs3 { list-style:disc; }
20 table.whs4 { x-cell-content-align:top; width:100%; border-spacing:0px; }
21 col.whs5 { width:50%; }
22 tr.whs6 { x-cell-content-align:top; }
23 td.whs7 { width:50%; padding-right:10px; padding-left:10px; border-right-style:none; border-left-style:none; border-top-style:none; border-bottom-style:none; }
24 p.whs8 { margin-left:0px; margin-right:53px; }
25 img_whs9 { border:none; width:389px; height:334px; float:none; border-style:none; }
26 td.whs10 { width:50%; padding-right:10px; padding-left:10px; border-top-style:none; border-bottom-style:none; border-right-style:none; }
27 p.whs11 { margin-left:0px; }
28 p.whs12 { margin-left:40px; }
29 col.whs13 { width:33.333%; }
30 td.whs14 { width:33.333%; padding-right:10px; padding-left:10px; border-bottom-style:none; border-right-style:none; border-left-style:none; border-top-style:none; }
31 td.whs15 { width:33.333%; padding-right:10px; padding-left:10px; border-bottom-style:none; border-right-style:none; border-top-style:none; }
32 td.whs16 { width:33.333%; padding-right:10px; padding-left:10px; border-bottom-style:none; border-top-style:none; border-right-style:none; }
33 td.whs17 { width:33.333%; padding-right:10px; padding-left:10px; border-right-style:none; border-left-style:none; border-bottom-style:none; }
34 td.whs18 { width:33.333%; padding-right:10px; padding-left:10px; border-right-style:none; border-bottom-style:none; }
35 td.whs19 { width:33.333%; padding-right:10px; padding-left:10px; border-bottom-style:none; border-right-style:none; }
36 p.whs20 { font-weight:bold; margin-left:0px; }
37 p.whs21 { font-weight:bold; }
38 img_whs22 { border:none; width:441px; height:541px; float:none; border-style:none; }
39 p.whs23 { margin-left:84px; }
40 p.whs24 { margin-left:156px; }
41 p.whs25 { margin-left:156px; font-weight:bold; }
42 img_whs26 { border:none; width:26px; height:25px; border-style:none; }
43 img_whs27 { border:none; width:29px; height:28px; border-style:none; }
44 -->
45 </style><script type="text/javascript" language="JavaScript">
46 <!--
47 if ((navigator.appName == "Netscape") && (parseInt(navigator.appVersion) == 4))
48 {
49   var strNSS = "<style type='text/css'>";
50   strNSS += "p.whs8 {margin-left:1pt; }";
51   strNSS += "p.whs11 {margin-left:1pt; }";
52   strNSS += "p.whs20 {margin-left:1pt; }";
53   strNSS +="</style>";
54   document.write(strNSS);
55 }
56 //-->
57 </script>
58 <script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">
59 <!--
60 function reDo() {
61   if (innerWidth != origWidth || innerHeight != origHeight)
62      location.reload();
63 }
64 if ((parseInt(navigator.appVersion) == 4) && (navigator.appName == "Netscape")) {
65         origWidth = innerWidth;
66         origHeight = innerHeight;
67         onresize = reDo;
68 }
69 onerror = null; 
70 //-->
71 </script>
72 <style type="text/css">
73 <!--
74 div.WebHelpPopupMenu { position:absolute; left:0px; top:0px; z-index:4; visibility:hidden; }
75 p.WebHelpNavBar { text-align:right; }
76 -->
77 </style><script type="text/javascript" language="javascript1.2" src="whmsg.js"></script>
78 <script type="text/javascript" language="javascript" src="whver.js"></script>
79 <script type="text/javascript" language="javascript1.2" src="whproxy.js"></script>
80 <script type="text/javascript" language="javascript1.2" src="whutils.js"></script>
81 <script type="text/javascript" language="javascript1.2" src="whtopic.js"></script>
82 <script type="text/javascript" language="javascript1.2">
83 <!--
84 if (window.gbWhTopic)
85 {
86         if (window.setRelStartPage)
87         {
88         addTocInfo("MESH module\nModifying meshes\nExtrusion along a path");
89 addButton("show",BTN_IMG,"Show","","","","",0,0,"whd_show0.gif","whd_show2.gif","whd_show1.gif");
90 addButton("hide",BTN_IMG,"Hide","","","","",0,0,"whd_hide0.gif","whd_hide2.gif","whd_hide1.gif");
91
92         }
93
94
95         if (window.setRelStartPage)
96         {
97         setRelStartPage("index.htm");
98
99                 autoSync(1);
100                 sendSyncInfo();
101                 sendAveInfoOut();
102         }
103
104 }
105 else
106         if (window.gbIE4)
107                 document.location.reload();
108 //-->
109 </script>
110 </head>
111 <body><script type="text/javascript" language="javascript1.2">
112 <!--
113 if (window.writeIntopicBar)
114         writeIntopicBar(4);
115 //-->
116 </script>
117 <h1><img src="image101.gif" width="27px" height="24px" border="0" class="img_whs1">Extrusion along a path</h1>
118
119 <p>In principle, <span style="font-weight: bold;"><B>Extrusion along a path</B></span> 
120  works in the same way as <span style="font-weight: bold;"><B>Extrusion</B></span>, 
121  the main difference is that we define not a vector, but a path of extrusion 
122  which must be a meshed edge. To get an idea of how this algorithm works, 
123  examine several examples, starting from the most simple case of extrusion 
124  along a straight edge. In all examples the same mesh will be extruded 
125  along different paths and with different parameters. This sample 2D mesh 
126  has two quadrangle faces and seven edges. Look at the picture, where white 
127  digits are the node numbers and green are the element numbers:</p>
128
129 <p><span style="margin-left: 40px;"><img src="pics/mesh_for_extr_along_path.png" x-maintain-ratio="TRUE" width="387px" height="334px" border="0" class="img_whs2"> .</span></p>
130
131 <p>&nbsp;</p>
132
133 <ul type="disc" class="whs3">
134         
135         <li class=kadov-p><p><span style="font-weight: bold;"><B>Extrusion along 
136  a straight edge</B></span> (not using base point or angles)</p></li>
137 </ul>
138
139 <table x-use-null-cells cellspacing="0" width="100%" class="whs4">
140 <col class="whs5">
141 <col class="whs5">
142
143 <tr valign="top" class="whs6">
144 <td width="50%" class="whs7">
145 <p class="whs8"><img src="pics/straight_before.png" x-maintain-ratio="TRUE" width="389px" height="334px" border="0" class="img_whs9"></td>
146 <td width="50%" class="whs10">
147 <p class="whs11"><img src="pics/straight_after.png" x-maintain-ratio="TRUE" width="389px" height="334px" border="0" class="img_whs9"></td></tr>
148 </table>
149
150 <p class="whs12">&nbsp;&nbsp;&nbsp;</p>
151
152 <p class="whs12">The left image shows a 1D path mesh, built 
153  on a linear edge, and the initial 2D mesh. The right image shows the result 
154  of extrusion of two edges (#1 and #2) of the initial mesh along the path. 
155  Node #1 of path mesh has been selected as <span style="font-weight: bold;"><B>Start 
156  node</B></span>.</p>
157
158 <p class="whs12">&nbsp;</p>
159
160 <ul type="disc" class="whs3">
161         
162         <li class=kadov-p><p><span style="font-weight: bold;"><B>Extrusion along 
163  a curvilinear edge</B></span> (with and without angles)</p></li>
164 </ul>
165
166 <table x-use-null-cells cellspacing="0" width="100%" class="whs4">
167 <col class="whs13">
168 <col class="whs13">
169 <col class="whs13">
170
171 <tr valign="top" class="whs6">
172 <td width="33.333%" class="whs14">
173 <p><img src="pics/curvi_simple_before.png" x-maintain-ratio="TRUE" width="389px" height="334px" border="0" class="img_whs9"></td>
174 <td width="33.333%" class="whs15">
175 <p><img src="pics/curvi_simple_after.png" x-maintain-ratio="TRUE" width="389px" height="334px" border="0" class="img_whs9"></td>
176 <td width="33.333%" class="whs16">
177 <p><img src="pics/curvi_angles_after.png" x-maintain-ratio="TRUE" width="389px" height="334px" border="0" class="img_whs9"></td></tr>
178
179 <tr valign="top" class="whs6">
180 <td width="33.333%" class="whs17">
181 <p>The left image shows a 1D path mesh, built on curvilinear edge, and 
182  the initial &nbsp;2D 
183  mesh.</td>
184 <td width="33.333%" class="whs18">
185 <p>The central image shows the result of extrusion of one edge (#2) of 
186  the initial mesh along the path. &nbsp;Node 
187  #1 of path mesh has been selected as <span style="font-weight: bold;"><B>Start 
188  node</B></span>.</td>
189 <td width="33.333%" class="whs19">
190 <p>The same, but using angles {45, 45, 45, 0, -45, -45, -45}</td></tr>
191 </table>
192
193 <p class="whs11">&nbsp;</p>
194
195 <ul type="disc" class="whs3">
196         
197         <li class=kadov-p><p class="whs11"><span style="font-weight: bold;"><B>Extrusion 
198  along a sub-mesh.</B></span></p></li>
199 </ul>
200
201 <table x-use-null-cells cellspacing="0" width="100%" class="whs4">
202 <col class="whs5">
203 <col class="whs5">
204
205 <tr valign="top" class="whs6">
206 <td width="50%" class="whs7">
207 <p><img src="pics/edge_wire_before.png" x-maintain-ratio="TRUE" width="389px" height="334px" border="0" class="img_whs9"></td>
208 <td width="50%" class="whs10">
209 <p><img src="pics/edge_wire_after.png" x-maintain-ratio="TRUE" width="389px" height="334px" border="0" class="img_whs9"></td></tr>
210 </table>
211
212 <p class="whs12">&nbsp;</p>
213
214 <p class="whs12">In this example the path mesh has been built 
215  on a wire (polyline with six edges). The first edge of the wire was used 
216  as <span style="font-weight: bold;"><B>Shape (edge)</B></span>, node #1 as <span 
217  style="font-weight: bold;"><B>Start node</B></span>. The angles have been defined 
218  as {10, 10, 10}. The middle edge (#4) of the initial mesh has been extruded.</p>
219
220 <p class="whs12">&nbsp;</p>
221
222 <ul type="disc" class="whs3">
223         
224         <li class=kadov-p><p class="whs20">Extrusion 
225  of 2d elements along a sub-mesh.</p></li>
226 </ul>
227
228 <table x-use-null-cells cellspacing="0" width="100%" class="whs4">
229 <col class="whs5">
230 <col class="whs5">
231
232 <tr valign="top" class="whs6">
233 <td width="50%" class="whs7">
234 <p><img src="pics/edge_wire_3d_before.png" x-maintain-ratio="TRUE" width="389px" height="334px" border="0" class="img_whs9"></td>
235 <td width="50%" class="whs10">
236 <p><img src="pics/edge_wire_3d_after.png" x-maintain-ratio="TRUE" width="389px" height="334px" border="0" class="img_whs9"></td></tr>
237 </table>
238
239 <p class="whs12">&nbsp;</p>
240
241 <p class="whs12">This extrusion bases on the same path mesh 
242  as in the previous example but the third edge of the wire was set as <span 
243  style="font-weight: bold;"><B>Shape (edge)</B></span> and node #4 as <span style="font-weight: bold;"><B>Start 
244  node</B></span>. Please note, that the extrusion has been done in direction 
245  from node #4 to node #3, i.e. against the wire direction. In this example 
246  both faces of the initial mesh have been extruded.</p>
247
248 <p class="whs12">&nbsp;</p>
249
250 <ul type="disc" class="whs3">
251         
252         <li class=kadov-p><p class="whs21">Extrusion of 2d elements 
253  along a closed path.</p></li>
254 </ul>
255
256 <table x-use-null-cells cellspacing="0" width="100%" class="whs4">
257 <col class="whs13">
258 <col class="whs13">
259 <col class="whs13">
260
261 <tr valign="top" class="whs6">
262 <td width="33.333%" class="whs14">
263 <p><img src="pics/circle_simple_before.png" x-maintain-ratio="TRUE" width="389px" height="334px" border="0" class="img_whs9"></td>
264 <td width="33.333%" class="whs15">
265 <p><img src="pics/circle_simple_after.png" x-maintain-ratio="TRUE" width="389px" height="334px" border="0" class="img_whs9"></td>
266 <td width="33.333%" class="whs16">
267 <p><img src="pics/circle_angles_after.png" x-maintain-ratio="TRUE" width="389px" height="334px" border="0" class="img_whs9"></td></tr>
268
269 <tr valign="top" class="whs6">
270 <td width="33.333%" class="whs17">
271 <p>The left image shows a path mesh built on a closed edge (circle).</td>
272 <td width="33.333%" class="whs18">
273 <p>The central image shows the result of extrusion of both faces of the 
274  initial mesh. Note, that no sewing has been done, so, there are six coincident 
275  nodes and two coincident faces in the resulting mesh.</td>
276 <td width="33.333%" class="whs19">
277 <p>The same, but using angles {45, -45, 45, -45, 45, -45, 45, -45}</td></tr>
278 </table>
279
280 <p class="whs12">&nbsp;</p>
281
282 <p>&nbsp;</p>
283
284 <p class=TODO>To use Extrusion along a path:</p>
285
286 <p class="whs12">1. From the <span style="font-weight: bold;"><B>Modification 
287  </B></span>menu choose the <span style="font-weight: bold;"><B>Extrusion along 
288  a path </B></span>item or click <img src="image101.gif" width="27px" height="24px" border="0" class="img_whs1"> button in the toolbar. The 
289  following dialog box will appear:</p>
290
291 <p class="whs12">&nbsp;</p>
292
293 <p class=TODO
294         style="margin-left: 80px;"><img src="pics/extrusion1.png" x-maintain-ratio="TRUE" width="441px" height="541px" border="0" class="img_whs22"></p>
295
296 <p class="whs12">&nbsp;</p>
297
298 <p class="whs12">2. In the dialog box you should &nbsp;</p>
299
300 <ul type="disc" class="whs3">
301         
302         <li class=kadov-p><p class="whs23">select the type of 
303  elements which will be extruded (1D or 2D),</p></li>
304         
305         <li class=kadov-p><p class="whs23">specify the <span style="font-weight: bold;"><B>IDs 
306  of the elements</B></span> which will be extruded by selecting them in the 
307  3D viewer or <span style="font-weight: bold;"><B>Select the whole mesh, submesh 
308  or group</B></span>,</p></li>
309         
310         <li class=kadov-p><p class="whs23">define the <span style="font-weight: bold;"><B>Path</B></span> 
311  along which the elements will be extruded, </p></li>
312 </ul>
313
314 <p class="whs24">Path definition consists of several elements 
315  </p>
316
317 <ul type="disc" class="whs3">
318         
319         <li class=kadov-p><p class="whs25">Mesh 
320  - <span style="font-weight: normal;">containing a 1D sub-mesh on the edge, 
321  along which proceeds the extrusion.</span></p></li>
322         
323         <li class=kadov-p><p class="whs25">Shape 
324  (edge) - <span style="font-weight: normal;">as the mesh can be complex, 
325  the edge is used to define the sub-mesh for the path.</span></p></li>
326         
327         <li class=kadov-p><p class="whs25">Start 
328  node - <span style="font-weight: normal;">&nbsp;the 
329  first or the last node on the edge. It is used to define the direction 
330  of extrusion.</span></p></li>
331 </ul>
332
333 <p class="whs12">&nbsp;</p>
334
335 <p class="whs12">3. There are two optional parameters, which 
336  can be very useful.</p>
337
338 <ul type="disc" class="whs3">
339         
340         <li class=kadov-p><p class="whs23">If the path of extrusion 
341  is curvilinear, at each iteration the extruded shape is rotated to keep 
342  its initial angularity to the curve. By default, the <span style="font-weight: bold;"><B>Base 
343  Point</B></span> around which the shape is rotated is the mass center of the 
344  shape, however, you can specify any point as the <span style="font-weight: bold;"><B>Base 
345  Point</B></span> and the shape will be rotated with respect to this point.</p></li>
346         
347         <li class=kadov-p><p class="whs23">The shape can also 
348  be rotated around the path to get the resulting mesh in a helical fashion. 
349  You can set the values of angles at the right, add them to the list of 
350  angles at the left by pressing the <img src="image105.gif" width="26px" height="25px" border="0" class="img_whs26"> button and remove them 
351  from the list by pressing the <img src="image106.gif" width="29px" height="28px" border="0" class="img_whs27"> button. </p></li>
352 </ul>
353
354 <p class="whs12">4. Click the <span style="font-weight: bold;"><B>Apply 
355  </B></span>or <span style="font-weight: bold;"><B>OK </B></span>button. Mesh edges 
356  will be extruded into faces, faces into volumes. The external surface 
357  of the resulting 3d mesh (if faces have been extruded) is covered with 
358  faces, and corners with edges. If the path is closed, the resulting mesh 
359  can contain duplicated nodes and faces, because no sewing is done.</p>
360
361 <p class="whs12">&nbsp;</p>
362
363 <p>&nbsp;<span style="font-weight: bold;"><B>See 
364  Also</B></span> a sample TUI Script of an <a href="modifying_meshes.htm#bookmark10">Extrusion 
365  along a Path</a> operation. &nbsp;</p>
366
367 <p>&nbsp;</p>
368
369 <p>&nbsp;</p>
370
371 <script type="text/javascript" language="javascript1.2">
372 <!--
373 if (window.writeIntopicBar)
374         writeIntopicBar(0);
375 //-->
376 </script>
377 </body>
378 </html>