-# 3d mesh generation
+# 3d mesh generation and mesh exploration
import salome
salome.salome_init()
# Create a mesh group of all triangles generated on geom faces present in faces_group
group = tetra.Group(faces_group)
+
+###
+# Explore the mesh
+###
+
+# Retrieve coordinates of nodes
+coordStr = ""
+for node in tetra.GetNodesId():
+ x,y,z = tetra.GetNodeXYZ( node )
+ coordStr += "%s (%s, %s, %s) " % ( node, x,y,z )
+ pass
+
+# Retrieve nodal connectivity of triangles
+triaStr = ""
+for tria in tetra.GetElementsByType( SMESH.FACE ):
+ nodes = tetra.GetElemNodes( tria )
+ triaStr += "%s (%s, %s, %s) " % ( tria, nodes[0], nodes[1], nodes[2] )
Class \ref smeshBuilder.smeshBuilder "smeshBuilder" provides an interface to create and handle
meshes. It can be used to create an empty mesh or to import mesh from the data file.
-As soon as mesh is created, it is possible to manage it via its own
+As soon as a mesh is created, it is possible to manage it via its own
methods, described in class \ref smeshBuilder.Mesh "Mesh" documentation.
Class \ref smeshstudytools.SMeshStudyTools "SMeshStudyTools" provides several methods to manipulate mesh objects in Salome study.
<pre>
\ref Mesh.Compute "mesh.Compute"()
</pre>
- </li>
+ </li>
</ol>
An easiest way to start with Python scripting is to do something in
All methods of the Mesh Group can be found in \ref tui_create_standalone_group sample script.
-An example below demonstrates usage of the Python API for 3d mesh generation.
+An example below demonstrates usage of the Python API for 3d mesh
+generation and for retrieving information on mesh nodes and elements.
\anchor example_3d_mesh
<h2>Example of 3d mesh generation:</h2>
It is sometimes useful to work alternatively in the GUI of SALOME and in the Python Console. To fetch an object from the TUI simply type:
-\code
-myMesh_ref = salome.IDToObject("ID")
-// were ID is the string looking like "0:1:2:3" that appears in the object browser in the Entry column
-// ( If hidden show it by right clicking and checking the checkbox Entry)
+\code{.py}
+myMesh_ref = salome.IDToObject( ID )
+# were ID is a string looking like "0:1:2:3" that appears in the Object Browser in the Entry column.
+# ( If hidden, show it by right clicking and checking the checkbox Entry )
myMesh = smesh.Mesh(myMesh_ref)
\endcode
or
-\code
+\code{.py}
myMesh_ref = salome.myStudy.FindObjectByPath("/Mesh/myMesh").GetObject()
-// "/Mesh/myMesh" is the path to the desired object in the object browser
+#'/Mesh/myMesh' is a path to the desired object in the Object Browser
+myMesh = smesh.Mesh(myMesh_ref)
+\endcode
+or
+\code{.py}
+# get a selected mesh
+from salome.gui import helper
+myMesh_ref = helper.getSObjectSelected()[0].GetObject()
myMesh = smesh.Mesh(myMesh_ref)
\endcode
// No adjacent prisms. Select a variant with a best aspect ratio.
- double badness[2] = { 0, 0 };
+ double badness[2] = { 0., 0. };
static SMESH::Controls::NumericalFunctorPtr aspectRatio( new SMESH::Controls::AspectRatio);
const SMDS_MeshNode** nodes = vol.GetNodes();
for ( int variant = 0; variant < nbVariants; ++variant )