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
diff --git a/doc/salome/gui/SMESH/smesh_py_introduction.htm b/doc/salome/gui/SMESH/smesh_py_introduction.htm
new file mode 100755 (executable)
index 0000000..405ec01
--- /dev/null
@@ -0,0 +1,208 @@
+<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">\r
+\r
+<html>\r
+\r
+<head>\r
+<title>Introduction to MESH module python interface</title>\r
+<meta http-equiv="content-type" content="text/html; charset=windows-1252">\r
+<meta name="generator" content="RoboHelp by eHelp Corporation www.ehelp.com"><style type="text/css">\r
+<!--\r
+p.whs1 { margin-top:0pt; margin-bottom:0pt; font-family:'Lucida Console' , monospace; }\r
+p.whs2 { margin-top:0pt; margin-bottom:0pt; }\r
+p.whs3 { font-family:'Lucida Console' , monospace; margin-top:0px; margin-bottom:0px; }\r
+p.whs4 { margin-top:0px; margin-bottom:0px; }\r
+p.whs5 { margin-top:0px; margin-bottom:0px; font-family:'Times New Roman' , serif; }\r
+-->\r
+</style><script type="text/javascript" language="JavaScript">\r
+<!--\r
+if ((navigator.appName == "Netscape") && (parseInt(navigator.appVersion) == 4))\r
+{\r
+  var strNSS = "<style type='text/css'>";\r
+  strNSS += "p.whs1 {margin-top:1pt;margin-bottom:1pt; }";\r
+  strNSS += "p.whs2 {margin-top:1pt;margin-bottom:1pt; }";\r
+  strNSS += "p.whs3 {margin-top:1pt;margin-bottom:1pt; }";\r
+  strNSS += "p.whs4 {margin-top:1pt;margin-bottom:1pt; }";\r
+  strNSS += "p.whs5 {margin-top:1pt;margin-bottom:1pt; }";\r
+  strNSS +="</style>";\r
+  document.write(strNSS);\r
+}\r
+//-->\r
+</script>\r
+<script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">\r
+<!--\r
+function reDo() {\r
+  if (innerWidth != origWidth || innerHeight != origHeight)\r
+     location.reload();\r
+}\r
+if ((parseInt(navigator.appVersion) == 4) && (navigator.appName == "Netscape")) {\r
+       origWidth = innerWidth;\r
+       origHeight = innerHeight;\r
+       onresize = reDo;\r
+}\r
+onerror = null; \r
+//-->\r
+</script>\r
+<style type="text/css">\r
+<!--\r
+div.WebHelpPopupMenu { position:absolute; left:0px; top:0px; z-index:4; visibility:hidden; }\r
+p.WebHelpNavBar { text-align:right; }\r
+-->\r
+</style><script type="text/javascript" language="javascript1.2" src="whmsg.js"></script>\r
+<script type="text/javascript" language="javascript" src="whver.js"></script>\r
+<script type="text/javascript" language="javascript1.2" src="whproxy.js"></script>\r
+<script type="text/javascript" language="javascript1.2" src="whutils.js"></script>\r
+<script type="text/javascript" language="javascript1.2" src="whtopic.js"></script>\r
+<script type="text/javascript" language="javascript1.2">\r
+<!--\r
+if (window.gbWhTopic)\r
+{\r
+       if (window.setRelStartPage)\r
+       {\r
+       addTocInfo("MESH module\nTUI Scripts\nIntroduction to MESH module python interface");\r
+addButton("show",BTN_IMG,"Show","","","","",0,0,"whd_show0.gif","whd_show2.gif","whd_show1.gif");\r
+addButton("hide",BTN_IMG,"Hide","","","","",0,0,"whd_hide0.gif","whd_hide2.gif","whd_hide1.gif");\r
+\r
+       }\r
+\r
+\r
+       if (window.setRelStartPage)\r
+       {\r
+       setRelStartPage("index.htm");\r
+\r
+               autoSync(1);\r
+               sendSyncInfo();\r
+               sendAveInfoOut();\r
+       }\r
+\r
+}\r
+else\r
+       if (window.gbIE4)\r
+               document.location.reload();\r
+//-->\r
+</script>\r
+</head>\r
+<body><script type="text/javascript" language="javascript1.2">\r
+<!--\r
+if (window.writeIntopicBar)\r
+       writeIntopicBar(4);\r
+//-->\r
+</script>\r
+<h1>Introduction to MESH module python interface</h1>\r
+\r
+<p><a href="smeshpy_doc/namespacesmesh.html">Package smesh</a> provides a standard API for meshes creation and edition.\r
+<p>Below you can see an example of package <b>smesh</b> usage for 3d mesh generation.\r
+<p>&nbsp;\r
+<h3><a name=bookmark>Example of 3d mesh generation with NETGEN</a></h3>\r
+\r
+<br>from geompy import *\r
+<br>\r
+<br>import smesh\r
+<br>\r
+<br># Geometry\r
+<br># ========\r
+<br>\r
+<br># an assembly of a box, a cylinder and a truncated cone meshed with tetrahedral.\r
+<br>\r
+<br># Define values\r
+<br># -------------\r
+<br>\r
+<br>name = "ex21_lamp"\r
+<br>\r
+<br>cote = 60\r
+<br>\r
+<br>section = 20\r
+<br>size    = 200\r
+<br>\r
+<br>radius_1 = 80\r
+<br>radius_2 = 40\r
+<br>height   = 100\r
+<br>\r
+<br># Build a box\r
+<br># -----------\r
+<br>\r
+<br>box  = MakeBox(-cote, -cote, -cote,  +cote, +cote, +cote)\r
+<br>\r
+<br># Build a cylinder\r
+<br># ----------------\r
+<br>\r
+<br>pt1 = MakeVertex(0, 0, cote/3)\r
+<br>di1 = MakeVectorDXDYDZ(0, 0, 1)\r
+<br>cyl = MakeCylinder(pt1, di1, section, size)\r
+<br>\r
+<br># Build a truncated cone\r
+<br># ----------------------\r
+<br>\r
+<br>pt2 = MakeVertex(0, 0, size)\r
+<br>cone = MakeCone(pt2, di1, radius_1, radius_2, height)\r
+<br>\r
+<br># Fuse\r
+<br># ----\r
+<br>\r
+<br>box_cyl = MakeFuse(box, cyl)\r
+<br>piece = MakeFuse(box_cyl, cone)\r
+<br>\r
+<br># Add in study\r
+<br># ------------\r
+<br>\r
+<br>addToStudy(piece, name)\r
+<br>\r
+<br># Create a group of faces\r
+<br># -----------------------\r
+<br>\r
+<br>group = CreateGroup(piece, ShapeType["FACE"])\r
+<br>\r
+<br>group_name = name + "_grp"\r
+<br>addToStudy(group, group_name)\r
+<br>group.SetName(group_name)\r
+<br>\r
+<br># Add faces in the group\r
+<br># ----------------------\r
+<br>\r
+<br>faces = SubShapeAllIDs(piece, ShapeType["FACE"])\r
+<br>\r
+<br>UnionIDs(group, faces)\r
+<br>\r
+<br># Create a mesh\r
+<br># =============\r
+<br>\r
+<br># Define a mesh on a geometry\r
+<br># ---------------------------\r
+<br>\r
+<br>tetra = smesh.Mesh(piece, name)\r
+<br>\r
+<br># Define 1D hypothesis\r
+<br># --------------------\r
+<br>\r
+<br>algo1d = tetra.Segment()\r
+<br>algo1d.LocalLength(10)\r
+<br>\r
+<br># Define 2D hypothesis\r
+<br># --------------------\r
+<br>\r
+<br>algo2d = tetra.Triangle()\r
+<br>algo2d.LengthFromEdges()\r
+<br>\r
+<br># Define 3D hypothesis\r
+<br># --------------------\r
+<br>\r
+<br>algo3d = tetra.Tetrahedron(smesh.NETGEN)\r
+<br>algo3d.MaxElementVolume(100)\r
+<br>\r
+<br># Compute the mesh\r
+<br># ----------------\r
+<br>\r
+<br>tetra.Compute()\r
+<br>\r
+<br># Create a groupe of faces\r
+<br># ------------------------\r
+<br>\r
+<br>tetra.Group(group)\r
+\r
+<script type="text/javascript" language="javascript1.2">\r
+<!--\r
+if (window.writeIntopicBar)\r
+       writeIntopicBar(0);\r
+//-->\r
+</script>\r
+</body>\r
+</html>\r