Salome HOME
Join modifications from branch BR_DEBUG_3_2_0b1
[modules/geom.git] / doc / salome / gui / GEOM / blocks_operations.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>Blocks Operations</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\nTransformation\nBlocks Operations");\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>Blocks Operations</h1>\r
79 \r
80 <h3><a name=bookmark4>Multi Transformation</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 vertices</p>\r
91 \r
92 <p class="whs1">p_25_25_50 = geompy.MakeVertex(25., \r
93  25., 50.)</p>\r
94 \r
95 <p class="whs1">p_50_25_25 = geompy.MakeVertex(50., \r
96  25., 25.)</p>\r
97 \r
98 <p class="whs1">p_25_50_25 = geompy.MakeVertex(25., \r
99  50., 25.)</p>\r
100 \r
101 <p class="whs1">box = geompy.MakeBoxDXDYDZ(50, \r
102  50, 50)</p>\r
103 \r
104 <p class="whs1">top_face = geompy.GetFaceNearPoint(box, \r
105  p_25_25_50)</p>\r
106 \r
107 <p class="whs1">yz_face = geompy.GetFaceNearPoint(box, \r
108  p_50_25_25)</p>\r
109 \r
110 <p class="whs1">xz_face = geompy.GetFaceNearPoint(box, \r
111  p_25_50_25)</p>\r
112 \r
113 <p class="whs1">top_face_ind = geompy.LocalOp.GetSubShapeIndex(box, \r
114  top_face)</p>\r
115 \r
116 <p class="whs1">yz_face_ind = geompy.LocalOp.GetSubShapeIndex(box, \r
117  yz_face)</p>\r
118 \r
119 <p class="whs1">xz_face_ind = geompy.LocalOp.GetSubShapeIndex(box, \r
120  xz_face)</p>\r
121 \r
122 <p>&nbsp;</p>\r
123 \r
124 <p># Multi-transformate block and glue the result</p>\r
125 \r
126 <p class="whs1">box_tr1 = geompy.MakeMultiTransformation1D(box, \r
127  yz_face_ind, top_face_ind, 3)</p>\r
128 \r
129 <p class="whs1">box_tr2 = geompy.MakeMultiTransformation2D(box, \r
130  xz_face_ind, yz_face_ind, 3, top_face_ind, 0, 2)</p>\r
131 \r
132 <p>&nbsp;</p>\r
133 \r
134 <p># add objects in the study</p>\r
135 \r
136 <p class="whs1">id_box = geompy.addToStudy(box, \r
137  &quot;Box&quot;)</p>\r
138 \r
139 <p class="whs1">id_box_tr1 = geompy.addToStudy(box_tr1, \r
140  &quot;Multi-transformed Block 1D&quot;)</p>\r
141 \r
142 <p class="whs1">id_box_tr2 = geompy.addToStudy(box_tr2, \r
143  &quot;Multi-transformed Block 2D&quot;)</p>\r
144 \r
145 <p>&nbsp;</p>\r
146 \r
147 <p># display the results</p>\r
148 \r
149 <p class="whs1">gg.createAndDisplayGO(id_box)</p>\r
150 \r
151 <p class="whs1">gg.setDisplayMode(id_box,1)</p>\r
152 \r
153 <p class="whs1">gg.createAndDisplayGO(id_box_tr1)</p>\r
154 \r
155 <p><span style="font-family: 'Lucida Console', monospace;">gg.createAndDisplayGO(id_box_tr2)</span> \r
156  </p>\r
157 \r
158 <p>&nbsp;</p>\r
159 \r
160 <h3><a name=bookmark5>Explode on Blocks</a></h3>\r
161 \r
162 <p class="whs1">import geompy</p>\r
163 \r
164 <p class="whs1">import salome</p>\r
165 \r
166 <p class="whs1">gg = salome.ImportComponentGUI(&quot;GEOM&quot;)</p>\r
167 \r
168 <p>&nbsp;</p>\r
169 \r
170 <p># create a box and a sphere</p>\r
171 \r
172 <p class="whs1">box = geompy.MakeBoxDXDYDZ(200, \r
173  200, 200)</p>\r
174 \r
175 <p class="whs1">sphere = geompy.MakeSphereR(100)</p>\r
176 \r
177 <p class="whs1">&nbsp;</p>\r
178 \r
179 <p># make a compound</p>\r
180 \r
181 <p class="whs1">compound = geompy.MakeCompound([box, \r
182  sphere])</p>\r
183 \r
184 <p>&nbsp;</p>\r
185 \r
186 <p># get all the blocks, contained in the given compound</p>\r
187 \r
188 <p class="whs1">make_block_explode \r
189  = geompy.MakeBlockExplode(compound, 1, 1)</p>\r
190 \r
191 <p>&nbsp;</p>\r
192 \r
193 <p># add objects in the study</p>\r
194 \r
195 <p class="whs1">id_compound = geompy.addToStudy(compound, \r
196  &quot;Compound&quot;)</p>\r
197 \r
198 <p class="whs1">id_make_block_explode \r
199  = geompy.addToStudy(make_block_explode[0], &quot;MakeBlockExplode&quot;)</p>\r
200 \r
201 <p>&nbsp;</p>\r
202 \r
203 <p># display the results</p>\r
204 \r
205 <p class="whs1">gg.createAndDisplayGO(id_compound)</p>\r
206 \r
207 <p class="whs1">gg.createAndDisplayGO(id_make_block_explode)</p>\r
208 \r
209 <p><span style="font-family: 'Lucida Console', monospace;">gg.setDisplayMode(id_make_block_explode,1)</span> \r
210  </p>\r
211 \r
212 <p>&nbsp;</p>\r
213 \r
214 <h3><a name=bookmark6>Propagate</a></h3>\r
215 \r
216 <p class="whs1">import geompy</p>\r
217 \r
218 <p class="whs1">import salome</p>\r
219 \r
220 <p>&nbsp;</p>\r
221 \r
222 <p># create a box and a sphere</p>\r
223 \r
224 <p class="whs1">box = geompy.MakeBoxDXDYDZ(200, \r
225  200, 200)</p>\r
226 \r
227 <p>&nbsp;</p>\r
228 \r
229 <p># check and improve</p>\r
230 \r
231 <p class="whs1">check_box = geompy.CheckAndImprove(box)</p>\r
232 \r
233 <p>&nbsp;&nbsp;</p>\r
234 \r
235 <p># build all possible propagation groups</p>\r
236 \r
237 <p class="whs1">listChains = geompy.Propagate(check_box)</p>\r
238 \r
239 <p>&nbsp;</p>\r
240 \r
241 <p># add objects in the study</p>\r
242 \r
243 <p class="whs1">geompy.addToStudy(check_box, \r
244  &quot;Box&quot;)</p>\r
245 \r
246 <p class="whs1">for chain in listChains:</p>\r
247 \r
248 <p class="whs1">&nbsp;&nbsp;&nbsp;&nbsp;geompy.addToStudyInFather(check_box, \r
249  chain, &quot;propagation chain&quot;)</p>\r
250 \r
251 <p><span style="font-family: 'Lucida Console', monospace;">salome.sg.updateObjBrowser(1)</span> \r
252  </p>\r
253 \r
254 <p>&nbsp;</p>\r
255 \r
256 <script type="text/javascript" language="javascript1.2">\r
257 <!--\r
258 if (window.writeIntopicBar)\r
259         writeIntopicBar(0);\r
260 //-->\r
261 </script>\r
262 </body>\r
263 </html>\r