Salome HOME
Update table of contents: add reference to Python documentation.
[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 100644 (file)
index 0000000..fc3d048
--- /dev/null
@@ -0,0 +1,270 @@
+<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">\r
+\r
+<html>\r
+\r
+<head>\r
+<title>smesh.py_introduction</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; }\r
+p.whs2 { margin-top:0pt; margin-bottom:0pt; font-family:'Lucida Console' , monospace; }\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 +="</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\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 class="whs1">Package smesh provides \r
+ a standard API for creation and edition of meshes . </p>\r
+\r
+<p class="whs1">Below you can see an example \r
+ of usage of the package smesh for 3d mesh generation. </p>\r
+\r
+<p class="whs1">&nbsp;&nbsp;</p>\r
+\r
+<p class="whs1">Example of 3d mesh generation \r
+ with NETGEN</p>\r
+\r
+<p class="whs1">from geompy import * </p>\r
+\r
+<p class="whs1"><span style="font-family: 'Lucida Console', monospace;">import \r
+ smesh</span> </p>\r
+\r
+<p class="whs1"># Geometry </p>\r
+\r
+<p class="whs1"># an assembly of a box, \r
+ a cylinder and a truncated cone meshed with tetrahedral. </p>\r
+\r
+<p class="whs1">&nbsp;</p>\r
+\r
+<p class="whs1"># Define values </p>\r
+\r
+<p class="whs2">name = &quot;ex21_lamp&quot; \r
+ </p>\r
+\r
+<p class="whs2">cote = 60 </p>\r
+\r
+<p class="whs2">section = 20 </p>\r
+\r
+<p class="whs2">size = 200 </p>\r
+\r
+<p class="whs2">radius_1 = 80 </p>\r
+\r
+<p class="whs2">radius_2 = 40 </p>\r
+\r
+<p class="whs1"><span style="font-family: 'Lucida Console', monospace;">height \r
+ = 100</span> </p>\r
+\r
+<p class="whs1">&nbsp;</p>\r
+\r
+<p class="whs1"># Build a box </p>\r
+\r
+<p class="whs2">box = MakeBox(-cote, \r
+ -cote, -cote, +cote, +cote, +cote) </p>\r
+\r
+<p class="whs1">&nbsp;</p>\r
+\r
+<p class="whs1"># Build a cylinder </p>\r
+\r
+<p class="whs2">pt1 = MakeVertex(0, \r
+ 0, cote/3) </p>\r
+\r
+<p class="whs2">di1 = MakeVectorDXDYDZ(0, \r
+ 0, 1) </p>\r
+\r
+<p class="whs1"><span style="font-family: 'Lucida Console', monospace;">cyl \r
+ = MakeCylinder(pt1, di1, section, size)</span> </p>\r
+\r
+<p class="whs1">&nbsp;</p>\r
+\r
+<p class="whs1"># Build a truncated cone \r
+ </p>\r
+\r
+<p class="whs2">pt2 = MakeVertex(0, \r
+ 0, size) </p>\r
+\r
+<p class="whs1"><span style="font-family: 'Lucida Console', monospace;">cone \r
+ = MakeCone(pt2, di1, radius_1, radius_2, height)</span> </p>\r
+\r
+<p class="whs1">&nbsp;</p>\r
+\r
+<p class="whs1"># Fuse </p>\r
+\r
+<p class="whs2">box_cyl = MakeFuse(box, \r
+ cyl) </p>\r
+\r
+<p class="whs1"><span style="font-family: 'Lucida Console', monospace;">piece \r
+ = MakeFuse(box_cyl, cone)</span> </p>\r
+\r
+<p class="whs1">&nbsp;</p>\r
+\r
+<p class="whs1"># Add in study </p>\r
+\r
+<p class="whs2">addToStudy(piece, \r
+ name) </p>\r
+\r
+<p class="whs1">&nbsp;</p>\r
+\r
+<p class="whs1"># Create a group of faces \r
+ </p>\r
+\r
+<p class="whs2">group = CreateGroup(piece, \r
+ ShapeType[&quot;FACE&quot;]) </p>\r
+\r
+<p class="whs2">group_name = name \r
+ + &quot;_grp&quot; </p>\r
+\r
+<p class="whs2">addToStudy(group, \r
+ group_name) </p>\r
+\r
+<p class="whs1"><span style="font-family: 'Lucida Console', monospace;">group.SetName(group_name)</span> \r
+ </p>\r
+\r
+<p class="whs1">&nbsp;</p>\r
+\r
+<p class="whs1"># Add faces in the group \r
+ </p>\r
+\r
+<p class="whs2">faces = SubShapeAllIDs(piece, \r
+ ShapeType[&quot;FACE&quot;]) </p>\r
+\r
+<p class="whs1"><span style="font-family: 'Lucida Console', monospace;">UnionIDs(group, \r
+ faces)</span> </p>\r
+\r
+<p class="whs1">&nbsp;</p>\r
+\r
+<p class="whs1"># Create a mesh </p>\r
+\r
+<p class="whs1">&nbsp;</p>\r
+\r
+<p class="whs1"># Define a mesh on a geometry \r
+ </p>\r
+\r
+<p class="whs2">tetra = smesh.Mesh(piece, \r
+ name) </p>\r
+\r
+<p class="whs1">&nbsp;</p>\r
+\r
+<p class="whs1"># Define 1D hypothesis \r
+ </p>\r
+\r
+<p class="whs2">algo1d = tetra.Segment() \r
+ </p>\r
+\r
+<p class="whs1"><span style="font-family: 'Lucida Console', monospace;">algo1d.LocalLength(10)</span> \r
+ </p>\r
+\r
+<p class="whs1">&nbsp;</p>\r
+\r
+<p class="whs1"># Define 2D hypothesis \r
+ </p>\r
+\r
+<p class="whs2">algo2d = tetra.Triangle() \r
+ </p>\r
+\r
+<p class="whs1"><span style="font-family: 'Lucida Console', monospace;">algo2d.LengthFromEdges()</span> \r
+ </p>\r
+\r
+<p class="whs1">&nbsp;</p>\r
+\r
+<p class="whs1"># Define 3D hypothesis \r
+ </p>\r
+\r
+<p class="whs2">algo3d = tetra.Tetrahedron(smesh.NETGEN) \r
+ </p>\r
+\r
+<p class="whs1"><span style="font-family: 'Lucida Console', monospace;">algo3d.MaxElementVolume(100)</span> \r
+ </p>\r
+\r
+<p class="whs1">&nbsp;</p>\r
+\r
+<p class="whs1"># Compute the mesh </p>\r
+\r
+<p class="whs2">tetra.Compute() \r
+ </p>\r
+\r
+<p class="whs1">&nbsp;</p>\r
+\r
+<p class="whs1"># Create a groupe of faces \r
+ </p>\r
+\r
+<p class="whs2">tetra.Group(group) \r
+ </p>\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