Salome HOME
Warn about direct SMESH idl usage: smesh python package have to be used where it...
[modules/smesh.git] / doc / salome / gui / SMESH / smesh_py_introduction.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>Introduction to MESH module python interface</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"><style type="text/css">\r
9 <!--\r
10 p.whs1 { margin-top:0pt; margin-bottom:0pt; font-family:'Lucida Console' , monospace; }\r
11 p.whs2 { margin-top:0pt; margin-bottom:0pt; }\r
12 p.whs3 { font-family:'Lucida Console' , monospace; margin-top:0px; margin-bottom:0px; }\r
13 p.whs4 { margin-top:0px; margin-bottom:0px; }\r
14 p.whs5 { margin-top:0px; margin-bottom:0px; font-family:'Times New Roman' , serif; }\r
15 -->\r
16 </style><script type="text/javascript" language="JavaScript">\r
17 <!--\r
18 if ((navigator.appName == "Netscape") && (parseInt(navigator.appVersion) == 4))\r
19 {\r
20   var strNSS = "<style type='text/css'>";\r
21   strNSS += "p.whs1 {margin-top:1pt;margin-bottom:1pt; }";\r
22   strNSS += "p.whs2 {margin-top:1pt;margin-bottom:1pt; }";\r
23   strNSS += "p.whs3 {margin-top:1pt;margin-bottom:1pt; }";\r
24   strNSS += "p.whs4 {margin-top:1pt;margin-bottom:1pt; }";\r
25   strNSS += "p.whs5 {margin-top:1pt;margin-bottom:1pt; }";\r
26   strNSS +="</style>";\r
27   document.write(strNSS);\r
28 }\r
29 //-->\r
30 </script>\r
31 <script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">\r
32 <!--\r
33 function reDo() {\r
34   if (innerWidth != origWidth || innerHeight != origHeight)\r
35      location.reload();\r
36 }\r
37 if ((parseInt(navigator.appVersion) == 4) && (navigator.appName == "Netscape")) {\r
38         origWidth = innerWidth;\r
39         origHeight = innerHeight;\r
40         onresize = reDo;\r
41 }\r
42 onerror = null; \r
43 //-->\r
44 </script>\r
45 <style type="text/css">\r
46 <!--\r
47 div.WebHelpPopupMenu { position:absolute; left:0px; top:0px; z-index:4; visibility:hidden; }\r
48 p.WebHelpNavBar { text-align:right; }\r
49 -->\r
50 </style><script type="text/javascript" language="javascript1.2" src="whmsg.js"></script>\r
51 <script type="text/javascript" language="javascript" src="whver.js"></script>\r
52 <script type="text/javascript" language="javascript1.2" src="whproxy.js"></script>\r
53 <script type="text/javascript" language="javascript1.2" src="whutils.js"></script>\r
54 <script type="text/javascript" language="javascript1.2" src="whtopic.js"></script>\r
55 <script type="text/javascript" language="javascript1.2">\r
56 <!--\r
57 if (window.gbWhTopic)\r
58 {\r
59         if (window.setRelStartPage)\r
60         {\r
61         addTocInfo("MESH module\nTUI Scripts\nIntroduction to MESH module python interface");\r
62 addButton("show",BTN_IMG,"Show","","","","",0,0,"whd_show0.gif","whd_show2.gif","whd_show1.gif");\r
63 addButton("hide",BTN_IMG,"Hide","","","","",0,0,"whd_hide0.gif","whd_hide2.gif","whd_hide1.gif");\r
64 \r
65         }\r
66 \r
67 \r
68         if (window.setRelStartPage)\r
69         {\r
70         setRelStartPage("index.htm");\r
71 \r
72                 autoSync(1);\r
73                 sendSyncInfo();\r
74                 sendAveInfoOut();\r
75         }\r
76 \r
77 }\r
78 else\r
79         if (window.gbIE4)\r
80                 document.location.reload();\r
81 //-->\r
82 </script>\r
83 </head>\r
84 <body><script type="text/javascript" language="javascript1.2">\r
85 <!--\r
86 if (window.writeIntopicBar)\r
87         writeIntopicBar(4);\r
88 //-->\r
89 </script>\r
90 <h1>Introduction to MESH module python interface</h1>\r
91 \r
92 <p><a href="smeshpy_doc/namespacesmesh.html">Package smesh</a> provides a standard API for meshes creation and edition.\r
93 <p>Below you can see an example of package <b>smesh</b> usage for 3d mesh generation.\r
94 <p>&nbsp;\r
95 <h3><a name=bookmark>Example of 3d mesh generation with NETGEN</a></h3>\r
96 \r
97 <br>from geompy import *\r
98 <br>\r
99 <br>import smesh\r
100 <br>\r
101 <br># Geometry\r
102 <br># ========\r
103 <br>\r
104 <br># an assembly of a box, a cylinder and a truncated cone meshed with tetrahedral.\r
105 <br>\r
106 <br># Define values\r
107 <br># -------------\r
108 <br>\r
109 <br>name = "ex21_lamp"\r
110 <br>\r
111 <br>cote = 60\r
112 <br>\r
113 <br>section = 20\r
114 <br>size    = 200\r
115 <br>\r
116 <br>radius_1 = 80\r
117 <br>radius_2 = 40\r
118 <br>height   = 100\r
119 <br>\r
120 <br># Build a box\r
121 <br># -----------\r
122 <br>\r
123 <br>box  = MakeBox(-cote, -cote, -cote,  +cote, +cote, +cote)\r
124 <br>\r
125 <br># Build a cylinder\r
126 <br># ----------------\r
127 <br>\r
128 <br>pt1 = MakeVertex(0, 0, cote/3)\r
129 <br>di1 = MakeVectorDXDYDZ(0, 0, 1)\r
130 <br>cyl = MakeCylinder(pt1, di1, section, size)\r
131 <br>\r
132 <br># Build a truncated cone\r
133 <br># ----------------------\r
134 <br>\r
135 <br>pt2 = MakeVertex(0, 0, size)\r
136 <br>cone = MakeCone(pt2, di1, radius_1, radius_2, height)\r
137 <br>\r
138 <br># Fuse\r
139 <br># ----\r
140 <br>\r
141 <br>box_cyl = MakeFuse(box, cyl)\r
142 <br>piece = MakeFuse(box_cyl, cone)\r
143 <br>\r
144 <br># Add in study\r
145 <br># ------------\r
146 <br>\r
147 <br>addToStudy(piece, name)\r
148 <br>\r
149 <br># Create a group of faces\r
150 <br># -----------------------\r
151 <br>\r
152 <br>group = CreateGroup(piece, ShapeType["FACE"])\r
153 <br>\r
154 <br>group_name = name + "_grp"\r
155 <br>addToStudy(group, group_name)\r
156 <br>group.SetName(group_name)\r
157 <br>\r
158 <br># Add faces in the group\r
159 <br># ----------------------\r
160 <br>\r
161 <br>faces = SubShapeAllIDs(piece, ShapeType["FACE"])\r
162 <br>\r
163 <br>UnionIDs(group, faces)\r
164 <br>\r
165 <br># Create a mesh\r
166 <br># =============\r
167 <br>\r
168 <br># Define a mesh on a geometry\r
169 <br># ---------------------------\r
170 <br>\r
171 <br>tetra = smesh.Mesh(piece, name)\r
172 <br>\r
173 <br># Define 1D hypothesis\r
174 <br># --------------------\r
175 <br>\r
176 <br>algo1d = tetra.Segment()\r
177 <br>algo1d.LocalLength(10)\r
178 <br>\r
179 <br># Define 2D hypothesis\r
180 <br># --------------------\r
181 <br>\r
182 <br>algo2d = tetra.Triangle()\r
183 <br>algo2d.LengthFromEdges()\r
184 <br>\r
185 <br># Define 3D hypothesis\r
186 <br># --------------------\r
187 <br>\r
188 <br>algo3d = tetra.Tetrahedron(smesh.NETGEN)\r
189 <br>algo3d.MaxElementVolume(100)\r
190 <br>\r
191 <br># Compute the mesh\r
192 <br># ----------------\r
193 <br>\r
194 <br>tetra.Compute()\r
195 <br>\r
196 <br># Create a groupe of faces\r
197 <br># ------------------------\r
198 <br>\r
199 <br>tetra.Group(group)\r
200 \r
201 <script type="text/javascript" language="javascript1.2">\r
202 <!--\r
203 if (window.writeIntopicBar)\r
204         writeIntopicBar(0);\r
205 //-->\r
206 </script>\r
207 </body>\r
208 </html>\r