1 <!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">
\r
6 <title>smesh.py_introduction</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
10 p.whs1 { margin-top:0pt; margin-bottom:0pt; }
\r
11 p.whs2 { margin-top:0pt; margin-bottom:0pt; font-family:'Lucida Console' , monospace; }
\r
13 </style><script type="text/javascript" language="JavaScript">
\r
15 if ((navigator.appName == "Netscape") && (parseInt(navigator.appVersion) == 4))
\r
17 var strNSS = "<style type='text/css'>";
\r
18 strNSS += "p.whs1 {margin-top:1pt;margin-bottom:1pt; }";
\r
19 strNSS += "p.whs2 {margin-top:1pt;margin-bottom:1pt; }";
\r
20 strNSS +="</style>";
\r
21 document.write(strNSS);
\r
25 <script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">
\r
28 if (innerWidth != origWidth || innerHeight != origHeight)
\r
31 if ((parseInt(navigator.appVersion) == 4) && (navigator.appName == "Netscape")) {
\r
32 origWidth = innerWidth;
\r
33 origHeight = innerHeight;
\r
39 <style type="text/css">
\r
41 div.WebHelpPopupMenu { position:absolute; left:0px; top:0px; z-index:4; visibility:hidden; }
\r
42 p.WebHelpNavBar { text-align:right; }
\r
44 </style><script type="text/javascript" language="javascript1.2" src="whmsg.js"></script>
\r
45 <script type="text/javascript" language="javascript" src="whver.js"></script>
\r
46 <script type="text/javascript" language="javascript1.2" src="whproxy.js"></script>
\r
47 <script type="text/javascript" language="javascript1.2" src="whutils.js"></script>
\r
48 <script type="text/javascript" language="javascript1.2" src="whtopic.js"></script>
\r
49 <script type="text/javascript" language="javascript1.2">
\r
51 if (window.gbWhTopic)
\r
53 if (window.setRelStartPage)
\r
55 addTocInfo("MESH module\nIntroduction to MESH module python interface");
\r
56 addButton("show",BTN_IMG,"Show","","","","",0,0,"whd_show0.gif","whd_show2.gif","whd_show1.gif");
\r
57 addButton("hide",BTN_IMG,"Hide","","","","",0,0,"whd_hide0.gif","whd_hide2.gif","whd_hide1.gif");
\r
62 if (window.setRelStartPage)
\r
64 setRelStartPage("index.htm");
\r
74 document.location.reload();
\r
78 <body><script type="text/javascript" language="javascript1.2">
\r
80 if (window.writeIntopicBar)
\r
84 <h1>Introduction to MESH module python interface</h1>
\r
86 <p class="whs1">Package smesh provides
\r
87 a standard API for creation and edition of meshes . </p>
\r
89 <p class="whs1">Below you can see an example
\r
90 of usage of the package smesh for 3d mesh generation. </p>
\r
92 <p class="whs1"> </p>
\r
94 <p class="whs1">Example of 3d mesh generation
\r
97 <p class="whs1">from geompy import * </p>
\r
99 <p class="whs1"><span style="font-family: 'Lucida Console', monospace;">import
\r
102 <p class="whs1"># Geometry </p>
\r
104 <p class="whs1"># an assembly of a box,
\r
105 a cylinder and a truncated cone meshed with tetrahedral. </p>
\r
107 <p class="whs1"> </p>
\r
109 <p class="whs1"># Define values </p>
\r
111 <p class="whs2">name = "ex21_lamp"
\r
114 <p class="whs2">cote = 60 </p>
\r
116 <p class="whs2">section = 20 </p>
\r
118 <p class="whs2">size = 200 </p>
\r
120 <p class="whs2">radius_1 = 80 </p>
\r
122 <p class="whs2">radius_2 = 40 </p>
\r
124 <p class="whs1"><span style="font-family: 'Lucida Console', monospace;">height
\r
127 <p class="whs1"> </p>
\r
129 <p class="whs1"># Build a box </p>
\r
131 <p class="whs2">box = MakeBox(-cote,
\r
132 -cote, -cote, +cote, +cote, +cote) </p>
\r
134 <p class="whs1"> </p>
\r
136 <p class="whs1"># Build a cylinder </p>
\r
138 <p class="whs2">pt1 = MakeVertex(0,
\r
141 <p class="whs2">di1 = MakeVectorDXDYDZ(0,
\r
144 <p class="whs1"><span style="font-family: 'Lucida Console', monospace;">cyl
\r
145 = MakeCylinder(pt1, di1, section, size)</span> </p>
\r
147 <p class="whs1"> </p>
\r
149 <p class="whs1"># Build a truncated cone
\r
152 <p class="whs2">pt2 = MakeVertex(0,
\r
155 <p class="whs1"><span style="font-family: 'Lucida Console', monospace;">cone
\r
156 = MakeCone(pt2, di1, radius_1, radius_2, height)</span> </p>
\r
158 <p class="whs1"> </p>
\r
160 <p class="whs1"># Fuse </p>
\r
162 <p class="whs2">box_cyl = MakeFuse(box,
\r
165 <p class="whs1"><span style="font-family: 'Lucida Console', monospace;">piece
\r
166 = MakeFuse(box_cyl, cone)</span> </p>
\r
168 <p class="whs1"> </p>
\r
170 <p class="whs1"># Add in study </p>
\r
172 <p class="whs2">addToStudy(piece,
\r
175 <p class="whs1"> </p>
\r
177 <p class="whs1"># Create a group of faces
\r
180 <p class="whs2">group = CreateGroup(piece,
\r
181 ShapeType["FACE"]) </p>
\r
183 <p class="whs2">group_name = name
\r
184 + "_grp" </p>
\r
186 <p class="whs2">addToStudy(group,
\r
189 <p class="whs1"><span style="font-family: 'Lucida Console', monospace;">group.SetName(group_name)</span>
\r
192 <p class="whs1"> </p>
\r
194 <p class="whs1"># Add faces in the group
\r
197 <p class="whs2">faces = SubShapeAllIDs(piece,
\r
198 ShapeType["FACE"]) </p>
\r
200 <p class="whs1"><span style="font-family: 'Lucida Console', monospace;">UnionIDs(group,
\r
203 <p class="whs1"> </p>
\r
205 <p class="whs1"># Create a mesh </p>
\r
207 <p class="whs1"> </p>
\r
209 <p class="whs1"># Define a mesh on a geometry
\r
212 <p class="whs2">tetra = smesh.Mesh(piece,
\r
215 <p class="whs1"> </p>
\r
217 <p class="whs1"># Define 1D hypothesis
\r
220 <p class="whs2">algo1d = tetra.Segment()
\r
223 <p class="whs1"><span style="font-family: 'Lucida Console', monospace;">algo1d.LocalLength(10)</span>
\r
226 <p class="whs1"> </p>
\r
228 <p class="whs1"># Define 2D hypothesis
\r
231 <p class="whs2">algo2d = tetra.Triangle()
\r
234 <p class="whs1"><span style="font-family: 'Lucida Console', monospace;">algo2d.LengthFromEdges()</span>
\r
237 <p class="whs1"> </p>
\r
239 <p class="whs1"># Define 3D hypothesis
\r
242 <p class="whs2">algo3d = tetra.Tetrahedron(smesh.NETGEN)
\r
245 <p class="whs1"><span style="font-family: 'Lucida Console', monospace;">algo3d.MaxElementVolume(100)</span>
\r
248 <p class="whs1"> </p>
\r
250 <p class="whs1"># Compute the mesh </p>
\r
252 <p class="whs2">tetra.Compute()
\r
255 <p class="whs1"> </p>
\r
257 <p class="whs1"># Create a groupe of faces
\r
260 <p class="whs2">tetra.Group(group)
\r
263 <script type="text/javascript" language="javascript1.2">
\r
265 if (window.writeIntopicBar)
\r
266 writeIntopicBar(0);
\r