Salome HOME
Update GEOM documentation.
[modules/geom.git] / doc / salome / gui / GEOM / complex_objects.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>Complex Objects</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 p.whs1 { font-family:'Lucida Console' , monospace; }\r
18 -->\r
19 </style><script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">\r
20 <!--\r
21 function reDo() {\r
22   if (innerWidth != origWidth || innerHeight != origHeight)\r
23      location.reload();\r
24 }\r
25 if ((parseInt(navigator.appVersion) == 4) && (navigator.appName == "Netscape")) {\r
26         origWidth = innerWidth;\r
27         origHeight = innerHeight;\r
28         onresize = reDo;\r
29 }\r
30 onerror = null; \r
31 //-->\r
32 </script>\r
33 <style type="text/css">\r
34 <!--\r
35 div.WebHelpPopupMenu { position:absolute; left:0px; top:0px; z-index:4; visibility:hidden; }\r
36 -->\r
37 </style><script type="text/javascript" language="javascript1.2" src="whmsg.js"></script>\r
38 <script type="text/javascript" language="javascript" src="whver.js"></script>\r
39 <script type="text/javascript" language="javascript1.2" src="whproxy.js"></script>\r
40 <script type="text/javascript" language="javascript1.2" src="whutils.js"></script>\r
41 <script type="text/javascript" language="javascript1.2" src="whtopic.js"></script>\r
42 </head>\r
43 <body><script type="text/javascript" language="javascript1.2">\r
44 <!--\r
45 if (window.gbWhTopic)\r
46 {\r
47         if (window.addTocInfo)\r
48         {\r
49         addTocInfo("GEOM module\nTUI Scripts\nCreation of Geometric Objects\nComplex Objects");\r
50 addButton("show",BTN_TEXT,"Show","","","","",0,0,"","","");\r
51 \r
52         }\r
53         if (window.writeBtnStyle)\r
54                 writeBtnStyle();\r
55 \r
56         if (window.writeIntopicBar)\r
57                 writeIntopicBar(1);\r
58 \r
59         if (window.setRelStartPage)\r
60         {\r
61         setRelStartPage("geom.htm");\r
62 \r
63                 autoSync(1);\r
64                 sendSyncInfo();\r
65                 sendAveInfoOut();\r
66         }\r
67 }\r
68 else\r
69         if (window.gbIE4)\r
70                 document.location.reload();\r
71 //-->\r
72 </script>\r
73 <h1>Complex Objects</h1>\r
74 \r
75 <h3><a name=bookmark>Creation of a Prism</a></h3>\r
76 \r
77 <p class="whs1">import geompy</p>\r
78 \r
79 <p class="whs1">import salome</p>\r
80 \r
81 <p class="whs1">gg = salome.ImportComponentGUI(&quot;GEOM&quot;)</p>\r
82 \r
83 <p>&nbsp;</p>\r
84 \r
85 <p># create vertex and vector</p>\r
86 \r
87 <p class="whs1">p1 = geompy.MakeVertex( \r
88  &nbsp;&nbsp;0., \r
89  &nbsp;&nbsp;0., \r
90  &nbsp;&nbsp;0.)</p>\r
91 \r
92 <p class="whs1">p2 = geompy.MakeVertex( \r
93  100., &nbsp;&nbsp;0., \r
94  &nbsp;&nbsp;0.)</p>\r
95 \r
96 <p class="whs1">p3 = geompy.MakeVertex( \r
97  100., 100., &nbsp;&nbsp;0.)</p>\r
98 \r
99 <p class="whs1">p4 = geompy.MakeVertex( \r
100  &nbsp;&nbsp;0., \r
101  100., &nbsp;&nbsp;0.)</p>\r
102 \r
103 <p class="whs1">p5 = geompy.MakeVertex( \r
104  &nbsp;&nbsp;0., \r
105  &nbsp;&nbsp;0., \r
106  &nbsp;60.)</p>\r
107 \r
108 <p class="whs1">p6 = geompy.MakeVertex(-100., \r
109  &nbsp;&nbsp;0., \r
110  &nbsp;&nbsp;0.)</p>\r
111 \r
112 <p class="whs1">p7 = geompy.MakeVertex(-100.,-100., \r
113  &nbsp;&nbsp;0.)</p>\r
114 \r
115 <p class="whs1">p8 = geompy.MakeVertex( \r
116  &nbsp;&nbsp;0.,-100., \r
117  &nbsp;&nbsp;0.)</p>\r
118 \r
119 <p>&nbsp;</p>\r
120 \r
121 <p># create vector with the given components</p>\r
122 \r
123 <p class="whs1">vector = geompy.MakeVectorDXDYDZ(50., \r
124  50., 50.)</p>\r
125 \r
126 <p>&nbsp;</p>\r
127 \r
128 <p>#create vectors with two points</p>\r
129 \r
130 <p class="whs1">vector1_arc1 = geompy.MakeVector(p1, \r
131  p2)</p>\r
132 \r
133 <p class="whs1">vector2_arc1 = geompy.MakeVector(p1, \r
134  p4)</p>\r
135 \r
136 <p class="whs1">vector1_arc2 = geompy.MakeVector(p1, \r
137  p6)</p>\r
138 \r
139 <p class="whs1">vector2_arc2 = geompy.MakeVector(p1, \r
140  p8)</p>\r
141 \r
142 <p>&nbsp;</p>\r
143 \r
144 <p># create arcs with three points</p>\r
145 \r
146 <p class="whs1">arc1 = geompy.MakeArc(p2, \r
147  p3, p4)</p>\r
148 \r
149 <p class="whs1">arc2 = geompy.MakeArc(p6, \r
150  p7, p8)</p>\r
151 \r
152 <p>&nbsp;</p>\r
153 \r
154 <p># create wires</p>\r
155 \r
156 <p class="whs1">wire1 = geompy.MakeWire([vector1_arc1, \r
157  arc1, vector2_arc1])</p>\r
158 \r
159 <p class="whs1">wire2 = geompy.MakeWire([vector1_arc2, \r
160  arc2, vector2_arc2])</p>\r
161 \r
162 <p>&nbsp;</p>\r
163 \r
164 <p># create faces</p>\r
165 \r
166 <p class="whs1">isPlanarWanted = 1</p>\r
167 \r
168 <p class="whs1">face1 = geompy.MakeFace(wire1, \r
169  isPlanarWanted)</p>\r
170 \r
171 <p class="whs1">face2 = geompy.MakeFace(wire2, \r
172  isPlanarWanted)</p>\r
173 \r
174 <p>&nbsp;</p>\r
175 \r
176 <p># create prisms</p>\r
177 \r
178 <p class="whs1">prism1 = geompy.MakePrism(face2, \r
179  p1, p5)</p>\r
180 \r
181 <p class="whs1">prism2 = geompy.MakePrismVecH(face1, \r
182  vector, 50)</p>\r
183 \r
184 <p>&nbsp;</p>\r
185 \r
186 <p># add objects in study</p>\r
187 \r
188 <p class="whs1">id_face1 &nbsp;&nbsp;= \r
189  geompy.addToStudy(face1,&quot;Face1&quot;)</p>\r
190 \r
191 <p class="whs1">id_face2 &nbsp;&nbsp;= \r
192  geompy.addToStudy(face2,&quot;Face2&quot;)</p>\r
193 \r
194 <p class="whs1">id_prism1 = geompy.addToStudy(prism1,&quot;Prism1&quot;)</p>\r
195 \r
196 <p class="whs1">id_prism2 = geompy.addToStudy(prism2,&quot;Prism2&quot;)</p>\r
197 \r
198 <p>&nbsp;</p>\r
199 \r
200 <p># display cylinders</p>\r
201 \r
202 <p class="whs1">gg.createAndDisplayGO(id_face1)</p>\r
203 \r
204 <p class="whs1">gg.setDisplayMode(id_face1,1)</p>\r
205 \r
206 <p class="whs1">gg.createAndDisplayGO(id_face2)</p>\r
207 \r
208 <p class="whs1">gg.setDisplayMode(id_face2,1)</p>\r
209 \r
210 <p class="whs1">gg.createAndDisplayGO(id_prism1)</p>\r
211 \r
212 <p class="whs1">gg.setDisplayMode(id_prism1,1)</p>\r
213 \r
214 <p class="whs1">gg.createAndDisplayGO(id_prism2)</p>\r
215 \r
216 <p><span style="font-family: 'Lucida Console', monospace;">gg.setDisplayMode(id_prism2,1)</span> \r
217  </p>\r
218 \r
219 <h3><a name=bookmark1>Creation of a Revolution</a></h3>\r
220 \r
221 <p class="whs1">import geompy</p>\r
222 \r
223 <p class="whs1">import salome</p>\r
224 \r
225 <p class="whs1">gg = salome.ImportComponentGUI(&quot;GEOM&quot;)</p>\r
226 \r
227 <p>&nbsp;</p>\r
228 \r
229 <p># create vertex and vector</p>\r
230 \r
231 <p class="whs1">p1 = geompy.MakeVertex( \r
232  &nbsp;10., &nbsp;10., \r
233  &nbsp;10.)</p>\r
234 \r
235 <p class="whs1">p2 = geompy.MakeVertex( \r
236  &nbsp;15., &nbsp;15., \r
237  &nbsp;50.)</p>\r
238 \r
239 <p class="whs1">p3 = geompy.MakeVertex( \r
240  &nbsp;40., &nbsp;40., \r
241  &nbsp;&nbsp;0.)</p>\r
242 \r
243 <p>&nbsp;</p>\r
244 \r
245 <p>#create vectors with two points</p>\r
246 \r
247 <p class="whs1">vector1 = geompy.MakeVector(p1, \r
248  p2)</p>\r
249 \r
250 <p class="whs1">vector2 = geompy.MakeVector(p1, \r
251  p3)</p>\r
252 \r
253 <p>&nbsp;</p>\r
254 \r
255 <p># create vector with the given components</p>\r
256 \r
257 <p class="whs1">vector3 = geompy.MakeVectorDXDYDZ(-20., \r
258  -20., 100.)</p>\r
259 \r
260 <p>&nbsp;</p>\r
261 \r
262 <p># create wire</p>\r
263 \r
264 <p class="whs1">wire = geompy.MakeWire([vector1, \r
265  vector2])</p>\r
266 \r
267 <p>&nbsp;</p>\r
268 \r
269 <p># create revolution</p>\r
270 \r
271 <p class="whs1">revolution = geompy.MakeRevolution(wire, \r
272  vector3, 2.3)</p>\r
273 \r
274 <p>&nbsp;</p>\r
275 \r
276 <p># add objects in study</p>\r
277 \r
278 <p class="whs1">id_vector3 &nbsp;&nbsp;&nbsp;= \r
279  geompy.addToStudy(vector3,&quot;Axis&quot;)</p>\r
280 \r
281 <p class="whs1">id_wire &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;= \r
282  geompy.addToStudy(wire,&quot;Wire&quot;)</p>\r
283 \r
284 <p class="whs1">id_revolution = geompy.addToStudy(revolution,&quot;Revolution&quot;)</p>\r
285 \r
286 <p>&nbsp;</p>\r
287 \r
288 <p># display vector, wire and revolution</p>\r
289 \r
290 <p class="whs1">gg.createAndDisplayGO(id_vector3)</p>\r
291 \r
292 <p class="whs1">gg.createAndDisplayGO(id_wire)</p>\r
293 \r
294 <p class="whs1">gg.createAndDisplayGO(id_revolution)</p>\r
295 \r
296 <p><span style="font-family: 'Lucida Console', monospace;">gg.setDisplayMode(id_revolution,1)</span> \r
297  </p>\r
298 \r
299 <h3><a name=bookmark2>Creation of a Filling</a></h3>\r
300 \r
301 <p class="whs1">import geompy</p>\r
302 \r
303 <p class="whs1">import salome</p>\r
304 \r
305 <p class="whs1">gg = salome.ImportComponentGUI(&quot;GEOM&quot;)</p>\r
306 \r
307 <p class="whs1">mindeg = 2</p>\r
308 \r
309 <p class="whs1">maxdeg = 5</p>\r
310 \r
311 <p class="whs1">tol3d &nbsp;&nbsp;= \r
312  0.0001</p>\r
313 \r
314 <p class="whs1">tol2d &nbsp;&nbsp;= \r
315  0.0001</p>\r
316 \r
317 <p class="whs1">nbiter = 5</p>\r
318 \r
319 <p>&nbsp;</p>\r
320 \r
321 <p># create vertex and vector</p>\r
322 \r
323 <p class="whs1">p1 = geompy.MakeVertex( \r
324  &nbsp;-30., &nbsp;-30., \r
325  &nbsp;50.)</p>\r
326 \r
327 <p class="whs1">p2 = geompy.MakeVertex( \r
328  &nbsp;-60., &nbsp;-60., \r
329  &nbsp;30.)</p>\r
330 \r
331 <p class="whs1">p3 = geompy.MakeVertex( \r
332  &nbsp;-30., &nbsp;-30., \r
333  &nbsp;10.)</p>\r
334 \r
335 <p>&nbsp;</p>\r
336 \r
337 <p># create arc with three points</p>\r
338 \r
339 <p class="whs1">arc = geompy.MakeArc(p1, \r
340  p2, p3)</p>\r
341 \r
342 <p class="whs1">ShapeListCompound \r
343  = []</p>\r
344 \r
345 <p class="whs1">i = 0</p>\r
346 \r
347 <p class="whs1">while i &lt;= 3 :</p>\r
348 \r
349 <p class="whs1">&nbsp;&nbsp;&nbsp;&nbsp;S \r
350  = geompy.MakeTranslation(arc, i * 50., 0., 0.)</p>\r
351 \r
352 <p class="whs1">&nbsp;&nbsp;&nbsp;&nbsp;ShapeListCompound.append(S)</p>\r
353 \r
354 <p class="whs1">&nbsp;&nbsp;&nbsp;&nbsp;i \r
355  = i + 1</p>\r
356 \r
357 <p class="whs1">compound = geompy.MakeCompound(ShapeListCompound)</p>\r
358 \r
359 <p>&nbsp;</p>\r
360 \r
361 <p># create filling</p>\r
362 \r
363 <p class="whs1">filling = geompy.MakeFilling(compound, \r
364  mindeg, maxdeg, tol3d, tol2d, nbiter)</p>\r
365 \r
366 <p>&nbsp;</p>\r
367 \r
368 <p># add objects in study</p>\r
369 \r
370 <p class="whs1">id_compound = geompy.addToStudy(compound,&quot;Compound&quot;)</p>\r
371 \r
372 <p class="whs1">id_filling = geompy.addToStudy(filling,&quot;Filling&quot;)</p>\r
373 \r
374 <p>&nbsp;</p>\r
375 \r
376 <p># display compound and filling</p>\r
377 \r
378 <p class="whs1">gg.createAndDisplayGO(id_compound)</p>\r
379 \r
380 <p class="whs1">gg.createAndDisplayGO(id_filling)</p>\r
381 \r
382 <p><span style="font-family: 'Lucida Console', monospace;">gg.setDisplayMode(id_filling,1)</span> \r
383  </p>\r
384 \r
385 <p>&nbsp;</p>\r
386 \r
387 <h3><a name=bookmark3>Creation of a Pipe</a></h3>\r
388 \r
389 <p class="whs1">import geompy</p>\r
390 \r
391 <p class="whs1">import salome</p>\r
392 \r
393 <p class="whs1">gg = salome.ImportComponentGUI(&quot;GEOM&quot;)</p>\r
394 \r
395 <p>&nbsp;</p>\r
396 \r
397 <p># create vertices</p>\r
398 \r
399 <p class="whs1">p0 &nbsp;&nbsp;= \r
400  geompy.MakeVertex(0. &nbsp;, \r
401  0. &nbsp;, 0. \r
402  &nbsp;)</p>\r
403 \r
404 <p class="whs1">px &nbsp;&nbsp;= \r
405  geompy.MakeVertex(100., 0. &nbsp;, \r
406  0. &nbsp;)</p>\r
407 \r
408 <p class="whs1">py &nbsp;&nbsp;= \r
409  geompy.MakeVertex(0. &nbsp;, \r
410  100., 0. &nbsp;)</p>\r
411 \r
412 <p class="whs1">pz &nbsp;&nbsp;= \r
413  geompy.MakeVertex(0. &nbsp;, \r
414  0. &nbsp;, 100.)</p>\r
415 \r
416 <p class="whs1">pxyz = geompy.MakeVertex(100., \r
417  100., 100.)</p>\r
418 \r
419 <p>&nbsp;</p>\r
420 \r
421 <p># create vector on two points</p>\r
422 \r
423 <p class="whs1">vxy = geompy.MakeVector(px, \r
424  py)</p>\r
425 \r
426 <p>&nbsp;</p>\r
427 \r
428 <p># create arc with three points</p>\r
429 \r
430 <p class="whs1">arc = geompy.MakeArc(py, \r
431  pz, px)</p>\r
432 \r
433 <p>&nbsp;</p>\r
434 \r
435 <p># create wire</p>\r
436 \r
437 <p class="whs1">wire = geompy.MakeWire([vxy, \r
438  arc])</p>\r
439 \r
440 <p>&nbsp;</p>\r
441 \r
442 <p># create edge</p>\r
443 \r
444 <p class="whs1">edge = geompy.MakeEdge(p0, \r
445  pxyz)</p>\r
446 \r
447 <p>&nbsp;</p>\r
448 \r
449 <p># create pipe</p>\r
450 \r
451 <p class="whs1">pipe = geompy.MakePipe(wire, \r
452  edge)</p>\r
453 \r
454 <p>&nbsp;</p>\r
455 \r
456 <p># add objects in study</p>\r
457 \r
458 <p class="whs1">id_wire = geompy.addToStudy(wire,&quot;Wire&quot;)</p>\r
459 \r
460 <p class="whs1">id_edge = geompy.addToStudy(edge,&quot;Edge&quot;)</p>\r
461 \r
462 <p class="whs1">id_pipe = geompy.addToStudy(pipe,&quot;Pipe&quot;)</p>\r
463 \r
464 <p>&nbsp;</p>\r
465 \r
466 <p># display wire, edge (path) and pipe</p>\r
467 \r
468 <p class="whs1">gg.createAndDisplayGO(id_wire)</p>\r
469 \r
470 <p class="whs1">gg.createAndDisplayGO(id_edge)</p>\r
471 \r
472 <p class="whs1">gg.createAndDisplayGO(id_pipe)</p>\r
473 \r
474 <p><span style="font-family: 'Lucida Console', monospace;">gg.setDisplayMode(id_pipe,1)</span> \r
475  </p>\r
476 \r
477 <script type="text/javascript" language="javascript1.2">\r
478 <!--\r
479 if (window.writeIntopicBar)\r
480         writeIntopicBar(0);\r
481 //-->\r
482 </script>\r
483 </body>\r
484 </html>\r