X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=doc%2Fsalome%2Fexamples%2F3dmesh.py;h=04d6073bdb2adb486e8850e0ff6338214ac9c90d;hb=81b6bac9c88b76ca01a7d314e91701bc947e9f1e;hp=bd6d3b4cc352935175d3d38cd4b2068a44f8708a;hpb=9a54694a0ab1e5cbc558a35c4606ceea4f7af2ef;p=modules%2Fsmesh.git diff --git a/doc/salome/examples/3dmesh.py b/doc/salome/examples/3dmesh.py index bd6d3b4cc..04d6073bd 100644 --- a/doc/salome/examples/3dmesh.py +++ b/doc/salome/examples/3dmesh.py @@ -1,11 +1,17 @@ -# 3d mesh generation +# 3d mesh generation and mesh exploration -from geompy import * -import smesh +import salome +salome.salome_init() +from salome.geom import geomBuilder +geompy = geomBuilder.New() + +import SMESH +from salome.smesh import smeshBuilder +smesh = smeshBuilder.New() ### # Geometry: an assembly of a box, a cylinder and a truncated cone -# meshed with tetrahedral +# to be meshed with tetrahedra ### # Define values @@ -18,33 +24,33 @@ radius_2 = 40 height = 100 # Build a box -box = MakeBox(-cote, -cote, -cote, +cote, +cote, +cote) +box = geompy.MakeBox(-cote, -cote, -cote, +cote, +cote, +cote) # Build a cylinder -pt1 = MakeVertex(0, 0, cote/3) -di1 = MakeVectorDXDYDZ(0, 0, 1) -cyl = MakeCylinder(pt1, di1, section, size) +pt1 = geompy.MakeVertex(0, 0, cote/3) +di1 = geompy.MakeVectorDXDYDZ(0, 0, 1) +cyl = geompy.MakeCylinder(pt1, di1, section, size) # Build a truncated cone -pt2 = MakeVertex(0, 0, size) -cone = MakeCone(pt2, di1, radius_1, radius_2, height) +pt2 = geompy.MakeVertex(0, 0, size) +cone = geompy.MakeCone(pt2, di1, radius_1, radius_2, height) # Fuse -box_cyl = MakeFuse(box, cyl) -piece = MakeFuse(box_cyl, cone) +box_cyl = geompy.MakeFuse(box, cyl) +piece = geompy.MakeFuse(box_cyl, cone) # Add to the study -addToStudy(piece, name) +geompy.addToStudy(piece, name) # Create a group of faces -group = CreateGroup(piece, ShapeType["FACE"]) +faces_group = geompy.CreateGroup(piece, geompy.ShapeType["FACE"]) group_name = name + "_grp" -addToStudy(group, group_name) -group.SetName(group_name) +geompy.addToStudy(faces_group, group_name) +faces_group.SetName(group_name) # Add faces to the group -faces = SubShapeAllIDs(piece, ShapeType["FACE"]) -UnionIDs(group, faces) +faces = geompy.SubShapeAllIDs(piece, geompy.ShapeType["FACE"]) +geompy.UnionIDs(faces_group, faces) ### # Create a mesh @@ -53,20 +59,46 @@ UnionIDs(group, faces) # Define a mesh on a geometry tetra = smesh.Mesh(piece, name) -# Define 1D hypothesis +# Define 1D algorithm and hypothesis algo1d = tetra.Segment() algo1d.LocalLength(10) -# Define 2D hypothesis +# Define 2D algorithm and hypothesis algo2d = tetra.Triangle() algo2d.LengthFromEdges() -# Define 3D hypothesis +# Define 3D algorithm and hypothesis algo3d = tetra.Tetrahedron() algo3d.MaxElementVolume(100) # Compute the mesh tetra.Compute() -# Create a groupe of faces -tetra.Group(group) +# 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] ) + +# Retrieve group contents +groupStr = "" +for group in tetra.GetGroups(): + ids = group.GetIDs() + name = group.GetName() + eType = group.GetType() + groupStr += "'%s' %s: %s \n" % ( name, eType, ids ) +