X-Git-Url: http://git.salome-platform.org/gitweb/?p=modules%2Fsmesh.git;a=blobdiff_plain;f=doc%2Fsalome%2Fexamples%2Ftransforming_meshes_ex11.py;h=de98b27bb2bd361856f195f69a9d999ae100913c;hp=55fbe8f2853449e578551aadb1c0c1d02630dbd3;hb=13b8c96957cd060f6e76f73c9248b941beff0d6d;hpb=9a54694a0ab1e5cbc558a35c4606ceea4f7af2ef diff --git a/doc/salome/examples/transforming_meshes_ex11.py b/doc/salome/examples/transforming_meshes_ex11.py index 55fbe8f28..de98b27bb 100644 --- a/doc/salome/examples/transforming_meshes_ex11.py +++ b/doc/salome/examples/transforming_meshes_ex11.py @@ -1,65 +1,94 @@ -# Duplicate nodes +# Duplicate nodes or/and elements + import salome -import smesh -import SMESH_test1 +salome.salome_init() + +import GEOM +from salome.geom import geomBuilder +geompy = geomBuilder.New(salome.myStudy) + +import SMESH +from salome.smesh import smeshBuilder +smesh = smeshBuilder.New(salome.myStudy) + +# Create a box + +box = geompy.MakeBox(0., 0., 0., 100., 200., 300.) -mesh = SMESH_test1.mesh +# Define hexa mesh on a box +mesh = smesh.Mesh(box, "Mesh") +mesh.Segment().NumberOfSegments(7) +mesh.Quadrangle() +mesh.Hexahedron() # Compute mesh mesh.Compute() -# Without the duplication of border elements +# Duplicate nodes only # Nodes to duplicate -nodes1 = mesh.CreateEmptyGroup( smesh.NODE, 'nodes1' ) -nodes1.Add( [ 289, 278, 302, 285 ] ) +nodes1 = mesh.CreateEmptyGroup( SMESH.NODE, 'nodes1' ) +nodes1.Add( [ 119, 125, 131, 137 ] ) # Group of faces to replace nodes with new ones -faces1 = mesh.CreateEmptyGroup( smesh.FACE, 'faces1' ) -faces1.Add( [ 519, 556, 557 ] ) +faces1 = mesh.CreateEmptyGroup( SMESH.FACE, 'faces1' ) +faces1.Add( [ 144, 151, 158 ] ) # Duplicate nodes print "\nMesh before the first nodes duplication:" -print "Nodes : ", mesh.NbNodes() -print "Edges : ", mesh.NbEdges() -print "Triangles : ", mesh.NbTriangles() +print "Nodes : ", mesh.NbNodes() +print "Edges : ", mesh.NbEdges() +print "Quadrangles : ", mesh.NbQuadrangles() groupOfCreatedNodes = mesh.DoubleNodeGroup(nodes1, faces1, theMakeGroup=True) print "New nodes:", groupOfCreatedNodes.GetIDs() print "\nMesh after the first nodes duplication:" -print "Nodes : ", mesh.NbNodes() -print "Edges : ", mesh.NbEdges() -print "Triangles : ", mesh.NbTriangles() +print "Nodes : ", mesh.NbNodes() +print "Edges : ", mesh.NbEdges() +print "Quadrangles : ", mesh.NbQuadrangles() -# With the duplication of border elements +# Duplicate nodes and border elements # Edges to duplicate -edges = mesh.CreateEmptyGroup( smesh.EDGE, 'edges' ) -edges.Add( [ 29, 30, 31 ] ) +edges = mesh.CreateEmptyGroup( SMESH.EDGE, 'edges' ) +edges.Add( [ 32, 33, 34 ] ) # Nodes not to duplicate -nodes2 = mesh.CreateEmptyGroup( smesh.NODE, 'nodes2' ) -nodes2.Add( [ 32, 5 ] ) +nodes2 = mesh.CreateEmptyGroup( SMESH.NODE, 'nodes2' ) +nodes2.Add( [ 35, 38 ] ) # Group of faces to replace nodes with new ones -faces2 = mesh.CreateEmptyGroup( smesh.FACE, 'faces2' ) -faces2.Add( [ 576, 578, 580 ] ) +faces2 = mesh.CreateEmptyGroup( SMESH.FACE, 'faces2' ) +faces2.Add( [ 141, 148, 155 ] ) # Duplicate nodes print "\nMesh before the second nodes duplication:" -print "Nodes : ", mesh.NbNodes() -print "Edges : ", mesh.NbEdges() -print "Triangles : ", mesh.NbTriangles() +print "Nodes : ", mesh.NbNodes() +print "Edges : ", mesh.NbEdges() +print "Quadrangles : ", mesh.NbQuadrangles() groupOfNewEdges = mesh.DoubleNodeElemGroup( edges, nodes2, faces2, theMakeGroup=True ) print "New edges:", groupOfNewEdges.GetIDs() print "\nMesh after the second nodes duplication:" -print "Nodes : ", mesh.NbNodes() -print "Edges : ", mesh.NbEdges() -print "Triangles : ", mesh.NbTriangles() +print "Nodes : ", mesh.NbNodes() +print "Edges : ", mesh.NbEdges() +print "Quadrangles : ", mesh.NbQuadrangles() + + +# Duplicate elements only + +# Duplicate all faces and make a group of new faces. +# If a mesh is given to DoubleElements(), all elements of the greatest dimension are duplicated +newFacesGroup = mesh.DoubleElements( mesh, "newFacesGroup" ) + +# Duplicate edges contained in the group "edges" and add new edges to this group +mesh.DoubleElements( edges, edges.GetName() ) + +# Duplicate two first edges of the mesh +mesh.DoubleElements([ 1, 2 ]) # Update object browser if salome.sg.hasDesktop():