Salome HOME
Fix for problem: SIGSEGV appears if to select group after opening "Edit Group" dialog...
[modules/smesh.git] / doc / salome / gui / SMESH / files / sewing_meshes.htm
1 <!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">\r
2 \r
3 <html>\r
4 \r
5 <!--(==============================================================)-->\r
6 <!--(Document created with RoboEditor. )============================-->\r
7 <!--(==============================================================)-->\r
8 \r
9 <head>\r
10 \r
11 <title>Sewing meshes</title>\r
12 \r
13 <!--(Meta)==========================================================-->\r
14 \r
15 <meta http-equiv=content-type content="text/html; charset=windows-1252">\r
16 <meta name=generator content="RoboHELP by eHelp Corporation - www.ehelp.com">\r
17 <meta name=generator-major-version content=0.1>\r
18 <meta name=generator-minor-version content=1>\r
19 <meta name=filetype content=kadov>\r
20 <meta name=filetype-version content=1>\r
21 <meta name=page-count content=1>\r
22 <meta name=layout-height content=3595>\r
23 <meta name=layout-width content=740>\r
24 \r
25 \r
26 <!--(Links)=========================================================-->\r
27 \r
28  <link rel='stylesheet' href='../default_ns.css'>\r
29 <script type="text/javascript" language="JavaScript" title="WebHelpSplitCss">\r
30 <!--\r
31 if (navigator.appName !="Netscape")\r
32 {   document.write("<link rel='stylesheet' href='../default.css'>");}\r
33 //-->\r
34 </script>\r
35 <style type="text/css">\r
36 <!--\r
37 img_whs1 {border-style: none; border: none; width: 30px; height: 30px; float: none;}\r
38 ul.whs2 {list-style: disc;}\r
39 p.whs3 {font-weight: bold;}\r
40 p.whs4 {margin-left: 40px;}\r
41 img_whs5 {border-style: none; border: none; width: 311px; height: 456px;}\r
42 img_whs6 {border-style: none; border: none; width: 297px; height: 62px;}\r
43 img_whs7 {border-style: none; border: none; width: 612px; height: 225px;}\r
44 img_whs8 {border-style: none; border: none; width: 612px; height: 230px;}\r
45 img_whs9 {border-style: none; border: none; width: 600px; height: 227px;}\r
46 img_whs10 {border-style: none; border: none; width: 620px; height: 228px;}\r
47 img_whs11 {border-style: none; border: none; width: 304px; height: 222px;}\r
48 -->\r
49 </style>\r
50 <script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">\r
51 <!--\r
52 function reDo() {\r
53   if (innerWidth != origWidth || innerHeight != origHeight)\r
54      location.reload();\r
55 }\r
56 if ((parseInt(navigator.appVersion) == 4) && (navigator.appName == "Netscape")) {\r
57         origWidth = innerWidth;\r
58         origHeight = innerHeight;\r
59         onresize = reDo;\r
60 }\r
61 onerror = null; \r
62 //-->\r
63 </script>\r
64 <style type="text/css">\r
65 <!--\r
66   div.WebHelpPopupMenu {position:absolute; left:0px; top:0px; z-index:4; visibility:hidden;}\r
67 -->\r
68 </style>\r
69 <script type="text/javascript" language="javascript1.2" src="../whmsg.js"></script>\r
70 <script type="text/javascript" language="javascript" src="../whver.js"></script>\r
71 <script type="text/javascript" language="javascript1.2" src="../whproxy.js"></script>\r
72 <script type="text/javascript" language="javascript1.2" src="../whutils.js"></script>\r
73 <script type="text/javascript" language="javascript1.2" src="../whtopic.js"></script>\r
74 </head>\r
75 \r
76 <!--(Body)==========================================================-->\r
77 \r
78 \r
79 <body>\r
80 \r
81 <script type="text/javascript" language="javascript1.2">\r
82 <!--\r
83 if (window.gbWhTopic)\r
84 {\r
85         if (window.addTocInfo)\r
86         {\r
87         addTocInfo("SMESH module\nModifying meshes\nTransforming meshes\nSewing meshes");\r
88 addButton("show",BTN_TEXT,"Show","","","","",0,0,"","","");\r
89 \r
90         }\r
91         if (window.writeBtnStyle)\r
92                 writeBtnStyle();\r
93 \r
94         if (window.writeIntopicBar)\r
95                 writeIntopicBar(1);\r
96 \r
97         if (window.setRelStartPage)\r
98         {\r
99         setRelStartPage("../smesh.htm");\r
100 \r
101                 autoSync(0);\r
102                 sendSyncInfo();\r
103                 sendAveInfoOut();\r
104         }\r
105 }\r
106 else\r
107         document.location.reload();\r
108 //-->\r
109 </script>\r
110 <h1>Sewing meshes</h1>\r
111 \r
112 <p><img src="../i_blue.jpg" x-maintain-ratio="TRUE" width="30px" height="30px" border="0" class="img_whs1"> In SMESH you can sew elements of &nbsp;different \r
113  meshes. The current functionality allows you to sew:</p>\r
114 \r
115 <p>&nbsp;</p>\r
116 \r
117 <ul type="disc" class="whs2">\r
118         \r
119         <li class=kadov-p><p class="whs3"><a href="#free bord">Free \r
120  borders </a></p></li>\r
121         \r
122         <li class=kadov-p><p class="whs3"><a href="#conform">Conform \r
123  free borders</a></p></li>\r
124         \r
125         <li class=kadov-p><p class="whs3"><a href="#border to side">Border \r
126  to side</a></p></li>\r
127         \r
128         <li class=kadov-p><p class="whs3"><a href="#side elements">Side \r
129  elements</a></p></li>\r
130 </ul>\r
131 \r
132 <p class="whs3">&nbsp;</p>\r
133 \r
134 <p class=TODO>To sew elements of different meshes:</p>\r
135 \r
136 <p class=TODO>&nbsp;</p>\r
137 \r
138 <p class="whs4">1. From the <span style="font-weight: bold;"><B>Modification \r
139  </B></span>menu choose the <span style="font-weight: bold;"><B>Transformation \r
140  </B></span>item and &nbsp;from \r
141  its sub-menu select the <span style="font-weight: bold;"><B>Sewing </B></span>item. \r
142  The following dialog box shall appear:</p>\r
143 \r
144 <p class="whs4">&nbsp;</p>\r
145 \r
146 <p class="whs4"><img src="../image57.gif" width="311px" height="456px" border="0" class="img_whs5"></p>\r
147 \r
148 <p class="whs4">&nbsp;</p>\r
149 \r
150 <p class="whs4">2. In the upper part of this dialog box check \r
151  one of the radio buttons corresponding to the type of sewing operation \r
152  you would like to perform: </p>\r
153 \r
154 <p class="whs4">&nbsp;</p>\r
155 \r
156 <p class="whs4"><img src="../image61.gif" width="297px" height="62px" border="0" class="img_whs6"> </p>\r
157 \r
158 <p class="whs4">&nbsp;</p>\r
159 \r
160 <p class="whs4">3. Fill the other fields available in the \r
161  dialog box</p>\r
162 \r
163 <p class="whs4">4. Click the <span style="font-weight: bold;"><B>OK \r
164  </B></span><span>or </span><span style="font-weight: bold;"><B>Apply </B></span>button \r
165  to perform the operation of sewing. </p>\r
166 \r
167 <p class="whs3">&nbsp;</p>\r
168 \r
169 <h3><a name="free bord"></a>Sew free borders</h3>\r
170 \r
171 <p>This functionality allows you to unite two free borders of a 2D mesh.</p>\r
172 \r
173 <p>&nbsp;</p>\r
174 \r
175 <p>For sewing free borders you should define three points on each border: \r
176  first, second and the last node: </p>\r
177 \r
178 <p>&nbsp;</p>\r
179 \r
180 <ul type="disc" class="whs2">\r
181         \r
182         <li class=kadov-p><p>&nbsp;the \r
183  first node specifies beginning of the border ;</p></li>\r
184         \r
185         <li class=kadov-p><p>&nbsp;the \r
186  second node specifies the part of the border which should be considered \r
187  (as far as the free border usually forms a closed contour);</p></li>\r
188         \r
189         <li class=kadov-p><p>&nbsp;the \r
190  last node specifies the end of the border.</p></li>\r
191 </ul>\r
192 \r
193 <p>&nbsp;</p>\r
194 \r
195 <p>You can select these nodes in the 3D viewer or define by its id.</p>\r
196 \r
197 <p>&nbsp;</p>\r
198 \r
199 <p>The first and the second nodes should belong to the same link of a face. \r
200  The second and the last nodes of a border can be the same. The first and \r
201  the last nodes of two borders can be the same. The corresponding end nodes \r
202  of two borders will be merged. Intermediate nodes of two borders will \r
203  be either merged or inserted into faces of the opposite border.</p>\r
204 \r
205 <p>&nbsp;</p>\r
206 \r
207 <p>The sewing algorithm is as follows:</p>\r
208 \r
209 <p>&nbsp;</p>\r
210 \r
211 <p class="whs4">1. The parameter (U) of each node within \r
212  a border is computed. So that the first node has U=0.0, the last node \r
213  has U=1.0, for the rest nodes 0.0 &lt; U &lt; 1.0;</p>\r
214 \r
215 <p class="whs4">2. Compare node parameters of the two borders. \r
216  If two nodes of the opposite borders have close parameters, they are merged, \r
217  i.e. a node of the first border is replaced in all elements by a node \r
218  of the second border. If a node has no node with a close parameter in \r
219  the opposite border, it is inserted into an edge of element of the opposite \r
220  border, an element is split. Two nodes are considered close enough to \r
221  merge, if difference of their parameters is less than one fifth of minimum \r
222  length of adjacent face edges on the borders.</p>\r
223 \r
224 <p>&nbsp;</p>\r
225 \r
226 <p class="whs4"><img src="../image22.jpg" width="612px" height="225px" border="0" class="img_whs7"></p>\r
227 \r
228 <p class="whs4">&nbsp;</p>\r
229 \r
230 <h3><a name=conform></a>Sew conform free borders</h3>\r
231 \r
232 <p>This functionality can be used to unite two free borders of a 2D mesh.</p>\r
233 \r
234 <p>&nbsp;</p>\r
235 \r
236 <p>The borders of meshes for sewing are defined as for &quot;Sew free borders&quot; \r
237  except that the second free border is not limited and can be defined by \r
238  the first and the second nodes only. The first nodes of two borders can \r
239  be the same.</p>\r
240 \r
241 <p>&nbsp;</p>\r
242 \r
243 <p class="whs4"><img src="../image23.jpg" width="612px" height="230px" border="0" class="img_whs8"></p>\r
244 \r
245 <p>The algorithm is following: counting nodes starting at the first ones, \r
246  the n-th node of the first border is merged with the n-th node of the \r
247  other border, until the end of either of borders. Nodes of the first border \r
248  are replaced in all elements with corresponding nodes of the second border.</p>\r
249 \r
250 <p>For sewing conform free borders you should define three points on the \r
251  first border and two points on the second one. User can select these nodes \r
252  in 3D viewer or define node by its id.</p>\r
253 \r
254 <p class="whs3">&nbsp;</p>\r
255 \r
256 <p class="whs3">&nbsp;</p>\r
257 \r
258 <h3><a name="border to side"></a>Sew border to side</h3>\r
259 \r
260 <p>&quot;Sew border to side&quot; is intended to sew a free border to a \r
261  mesh surface.</p>\r
262 \r
263 <p>The free border is defined as for &quot;Sewing of free borders&quot;. \r
264  The place where to sew the border is defined by two nodes, between which \r
265  the border faces are placed, so that the first border node is merged with \r
266  the first node on the side and the last node of the border is merged with \r
267  the second specified node on the side.</p>\r
268 \r
269 <p>&nbsp;</p>\r
270 \r
271 <p class="whs4"><img src="../image30.jpg" width="600px" height="227px" border="0" class="img_whs9"></p>\r
272 \r
273 <p>The algorithm is following.</p>\r
274 \r
275 <p>1. Find a sequence of linked nodes on the side such that the found links \r
276  to be most co-directed with the links of the free border.</p>\r
277 \r
278 <p>2. Sew two sequences of nodes using algorithm of &quot;Sewing of free \r
279  berders&quot;.</p>\r
280 \r
281 <p>For sewing border to side you should define three points on the border \r
282  and two points on the side. User can select these nodes in 3D viewer or \r
283  define node by its id.</p>\r
284 \r
285 <p>&nbsp;</p>\r
286 \r
287 <h3><a name="side elements"></a>Sew side elements</h3>\r
288 \r
289 <p class="whs4">&nbsp;</p>\r
290 \r
291 <p>&nbsp;</p>\r
292 \r
293 <p class="whs4"><img src="../image31.jpg" width="620px" height="228px" border="0" class="img_whs10"></p>\r
294 \r
295 <p>This operation is intended to unite two mesh surfaces.</p>\r
296 \r
297 <p>Surfaces may be defined by either 2d or 3d elements. The number of given \r
298  elements of the sides must be the same. The sets of given elements must \r
299  be topologically equal, i.e. each node of one element set must have a \r
300  corresponding node in the other element set and corresponding nodes must \r
301  be equally linked. If there are 3d elements in a set, only their free \r
302  faces must obey to that rule.</p>\r
303 \r
304 <p>Two corresponding nodes on each side must be specified. They must belong \r
305  to one element and must be located on an element set boundary.</p>\r
306 \r
307 <p>Sewing algorithm finds and merges the corresponding nodes starting from \r
308  the specified ones.</p>\r
309 \r
310 <p>&nbsp;</p>\r
311 \r
312 <p class="whs4"><img src="../image32.jpg" width="304px" height="222px" border="0" class="img_whs11"></p>\r
313 \r
314 <p>For sewing side elements you should define elements for sewing and two \r
315  nodes for merging on the each side. User can select these elements and \r
316  nodes in 3D viewer or define them by its id.</p>\r
317 \r
318 <p>&nbsp;</p>\r
319 \r
320 <script type="text/javascript" language="javascript1.2">\r
321 <!--\r
322 if (window.writeIntopicBar)\r
323         writeIntopicBar(0);\r
324 //-->\r
325 </script>\r
326 </body>\r
327 \r
328 </html>\r