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