PR: examples adaptation to geomBuilder and smeshBuilder

This commit is contained in:
prascle 2013-03-21 22:35:39 +00:00
parent ab477cd54e
commit 23519bfc50
10 changed files with 36 additions and 36 deletions

View File

@ -14,18 +14,18 @@ import salome_notebook
# make a mesh on a box # make a mesh on a box
box = geompy.MakeBoxDXDYDZ(100,100,100) box = geompy.MakeBoxDXDYDZ(100,100,100)
mesh = Mesh( box, "Box" ) mesh = smesh.Mesh( box, "Box" )
mesh.Segment().NumberOfSegments(10) mesh.Segment().NumberOfSegments(10)
mesh.Quadrangle() mesh.Quadrangle()
mesh.Hexahedron() mesh.Hexahedron()
mesh.Compute() mesh.Compute()
# copy all elements with translation and Merge nodes # copy all elements with translation and Merge nodes
mesh.TranslateObject( mesh, MakeDirStruct( 10,0,0), Copy=True ) mesh.TranslateObject( mesh, smesh.MakeDirStruct( 10,0,0), Copy=True )
mesh.MergeNodes( mesh.FindCoincidentNodes(1e-7) ) mesh.MergeNodes( mesh.FindCoincidentNodes(1e-7) )
# create filters to find equal elements # create filters to find equal elements
equalEdgesFilter = GetFilter(SMESH.EDGE, SMESH.FT_EqualEdges) equalEdgesFilter = smesh.GetFilter(SMESH.EDGE, SMESH.FT_EqualEdges)
equalFacesFilter = GetFilter(SMESH.FACE, SMESH.FT_EqualFaces) equalFacesFilter = smesh.GetFilter(SMESH.FACE, SMESH.FT_EqualFaces)
equalVolumesFilter = GetFilter(SMESH.VOLUME, SMESH.FT_EqualVolumes) equalVolumesFilter = smesh.GetFilter(SMESH.VOLUME, SMESH.FT_EqualVolumes)
# get equal elements # get equal elements
print "Number of equal edges:", len( mesh.GetIdsFromFilter( equalEdgesFilter )) print "Number of equal edges:", len( mesh.GetIdsFromFilter( equalEdgesFilter ))
print "Number of equal faces:", len( mesh.GetIdsFromFilter( equalFacesFilter )) print "Number of equal faces:", len( mesh.GetIdsFromFilter( equalFacesFilter ))

View File

@ -14,14 +14,14 @@ import salome_notebook
# make a mesh on a box # make a mesh on a box
box = geompy.MakeBoxDXDYDZ(100,100,100) box = geompy.MakeBoxDXDYDZ(100,100,100)
mesh = Mesh( box, "Box" ) mesh = smesh.Mesh( box, "Box" )
mesh.Segment().NumberOfSegments(10) mesh.Segment().NumberOfSegments(10)
mesh.Quadrangle() mesh.Quadrangle()
mesh.Hexahedron() mesh.Hexahedron()
mesh.Compute() mesh.Compute()
# copy all elements with translation # copy all elements with translation
mesh.TranslateObject( mesh, MakeDirStruct( 10,0,0), Copy=True ) mesh.TranslateObject( mesh, smesh.MakeDirStruct( 10,0,0), Copy=True )
# create filters to find nodes equal within tolerance of 1e-5 # create filters to find nodes equal within tolerance of 1e-5
filter = GetFilter(SMESH.NODE, FT_EqualNodes, Tolerance=1e-5) filter = smesh.GetFilter(SMESH.NODE, SMESH.FT_EqualNodes, Tolerance=1e-5)
# get equal nodes # get equal nodes
print "Number of equal nodes:", len( mesh.GetIdsFromFilter( filter )) print "Number of equal nodes:", len( mesh.GetIdsFromFilter( filter ))

View File

@ -3,7 +3,7 @@
# create mesh # create mesh
from SMESH_mechanic import * from SMESH_mechanic import *
# get all the quadrangle faces ... # get all the quadrangle faces ...
criterion1 = smesh.GetCriterion(SMESH.FACE, SMESH.FT_ElemGeomType, smesh.Geom_QUADRANGLE, SMESH.FT_LogicalAND) criterion1 = smesh.GetCriterion(SMESH.FACE, SMESH.FT_ElemGeomType, SMESH.Geom_QUADRANGLE, SMESH.FT_LogicalAND)
# ... AND do NOT get those from sub_face3 # ... AND do NOT get those from sub_face3
criterion2 = smesh.GetCriterion(SMESH.FACE, SMESH.FT_BelongToGeom, sub_face3, SMESH.FT_LogicalNOT) criterion2 = smesh.GetCriterion(SMESH.FACE, SMESH.FT_BelongToGeom, sub_face3, SMESH.FT_LogicalNOT)
filter = smesh.CreateFilterManager().CreateFilter() filter = smesh.CreateFilterManager().CreateFilter()

View File

@ -16,18 +16,18 @@ import salome_notebook
box = geompy.MakeBoxDXDYDZ(10,10,10) box = geompy.MakeBoxDXDYDZ(10,10,10)
# make a mesh with quadrangles of different area in range [1,16] # make a mesh with quadrangles of different area in range [1,16]
mesh = Mesh(box,"Quad mesh") mesh = smesh.Mesh(box,"Quad mesh")
hyp1D = mesh.Segment().StartEndLength( 1, 4 ) hyp1D = mesh.Segment().StartEndLength( 1, 4 )
mesh.Quadrangle() mesh.Quadrangle()
mesh.Compute() mesh.Compute()
# create a group on filter selecting faces of medium size # create a group on filter selecting faces of medium size
critaria = [ \ critaria = [ \
GetCriterion(FACE, FT_Area, ">", 1.1, BinaryOp=FT_LogicalAND ), smesh.GetCriterion(SMESH.FACE, SMESH.FT_Area, ">", 1.1, BinaryOp=SMESH.FT_LogicalAND ),
GetCriterion(FACE, FT_Area, "<", 15.0 ) smesh.GetCriterion(SMESH.FACE, SMESH.FT_Area, "<", 15.0 )
] ]
filt = GetFilterFromCriteria( critaria ) filt = smesh.GetFilterFromCriteria( critaria )
filtGroup = mesh.GroupOnFilter( FACE, "group on filter", filt ) filtGroup = mesh.GroupOnFilter( SMESH.FACE, "group on filter", filt )
print "Group on filter contains %s elemens" % filtGroup.Size() print "Group on filter contains %s elemens" % filtGroup.Size()
# group on filter is updated if the mesh is modified # group on filter is updated if the mesh is modified
@ -37,12 +37,12 @@ mesh.Compute()
print "After mesh change, group on filter contains %s elemens" % filtGroup.Size() print "After mesh change, group on filter contains %s elemens" % filtGroup.Size()
# set a new filter defining the group # set a new filter defining the group
filt2 = GetFilter( FACE, FT_RangeOfIds, "1-50" ) filt2 = smesh.GetFilter( SMESH.FACE, SMESH.FT_RangeOfIds, "1-50" )
filtGroup.SetFilter( filt2 ) filtGroup.SetFilter( filt2 )
print "With a new filter, group on filter contains %s elemens" % filtGroup.Size() print "With a new filter, group on filter contains %s elemens" % filtGroup.Size()
# group is updated at modification of the filter # group is updated at modification of the filter
filt2.SetCriteria( [ GetCriterion( FACE, FT_RangeOfIds, "1-70" )]) filt2.SetCriteria( [ smesh.GetCriterion( SMESH.FACE, SMESH.FT_RangeOfIds, "1-70" )])
filtIDs3 = filtGroup.GetIDs() filtIDs3 = filtGroup.GetIDs()
print "After filter modification, group on filter contains %s elemens" % filtGroup.Size() print "After filter modification, group on filter contains %s elemens" % filtGroup.Size()

View File

@ -13,16 +13,16 @@ smesh = smeshBuilder.New(salome.myStudy)
import salome_notebook import salome_notebook
box = MakeBoxDXDYDZ(200, 200, 200) box = geompy.MakeBoxDXDYDZ(200, 200, 200)
mesh = Mesh( box ) mesh = smesh.Mesh( box )
mesh.Segment().AutomaticLength(0.1) mesh.Segment().AutomaticLength(0.1)
mesh.Quadrangle() mesh.Quadrangle()
mesh.Compute() mesh.Compute()
# find node at (0,0,0) # find node at (0,0,0)
node000 = None node000 = None
for vId in SubShapeAllIDs( box, ShapeType["VERTEX"]): for vId in geompy.SubShapeAllIDs( box, geompy.ShapeType["VERTEX"]):
if node000: break if node000: break
nodeIds = mesh.GetSubMeshNodesId( vId, True ) nodeIds = mesh.GetSubMeshNodesId( vId, True )
for node in nodeIds: for node in nodeIds:

View File

@ -22,8 +22,8 @@ mesh.Quadrangle()
mesh.Compute() mesh.Compute()
# remove 2 faces # remove 2 faces
allFaces = mesh.GetElementsByType(FACE) allFaces = mesh.GetElementsByType(SMESH.FACE)
mesh.RemoveElements( allFaces[0:2]) mesh.RemoveElements( allFaces[0:2])
bareGroup = mesh.MakeGroup("bare faces", FACE, FT_BareBorderFace) bareGroup = mesh.MakeGroup("bare faces", SMESH.FACE, SMESH.FT_BareBorderFace)
assert(bareGroup.Size() == 3) assert(bareGroup.Size() == 3)

View File

@ -20,7 +20,7 @@ face = geompy.SubShapeAllSorted( box, geompy.ShapeType["FACE"])[0]
geompy.addToStudy( box, "box" ) geompy.addToStudy( box, "box" )
geompy.addToStudyInFather( box, face, "face" ) geompy.addToStudyInFather( box, face, "face" )
mesh = Mesh(box) mesh = smesh.Mesh(box)
mesh.AutomaticHexahedralization(); mesh.AutomaticHexahedralization();
# remove half of mesh faces from the smallest face # remove half of mesh faces from the smallest face
@ -29,5 +29,5 @@ faceToRemove = faceFaces[: len(faceFaces)/2]
mesh.RemoveElements( faceToRemove ) mesh.RemoveElements( faceToRemove )
# make a group of volumes missing the removed faces # make a group of volumes missing the removed faces
bareGroup = mesh.MakeGroup("bare volumes", VOLUME, FT_BareBorderVolume) bareGroup = mesh.MakeGroup("bare volumes", SMESH.VOLUME, SMESH.FT_BareBorderVolume)
assert(bareGroup.Size() == len( faceToRemove)) assert(bareGroup.Size() == len( faceToRemove))

View File

@ -13,8 +13,8 @@ smesh = smeshBuilder.New(salome.myStudy)
import salome_notebook import salome_notebook
mesh = Mesh() mesh = smesh.Mesh()
faceFilter = GetFilter(FACE,FT_OverConstrainedFace) faceFilter = smesh.GetFilter(SMESH.FACE,SMESH.FT_OverConstrainedFace)
#make an edge #make an edge
n1 = mesh.AddNode(0,0,0) n1 = mesh.AddNode(0,0,0)
@ -23,5 +23,5 @@ edge = mesh.AddEdge([n1,n2])
assert( not mesh.GetIdsFromFilter( faceFilter )) assert( not mesh.GetIdsFromFilter( faceFilter ))
# make faces # make faces
mesh.ExtrusionSweep([edge], MakeDirStruct(0,7,0), 5) mesh.ExtrusionSweep([edge], smesh.MakeDirStruct(0,7,0), 5)
assert( 2 == len( mesh.GetIdsFromFilter( faceFilter ))) assert( 2 == len( mesh.GetIdsFromFilter( faceFilter )))

View File

@ -13,13 +13,13 @@ smesh = smeshBuilder.New(salome.myStudy)
import salome_notebook import salome_notebook
mesh = Mesh() mesh = smesh.Mesh()
volumeFilter = GetFilter(VOLUME,FT_OverConstrainedVolume) volumeFilter = smesh.GetFilter(SMESH.VOLUME,SMESH.FT_OverConstrainedVolume)
# make volumes by extrusion of one face # make volumes by extrusion of one face
n1 = mesh.AddNode(0,0,0) n1 = mesh.AddNode(0,0,0)
n2 = mesh.AddNode(10,0,0) n2 = mesh.AddNode(10,0,0)
edge = mesh.AddEdge([n1,n2]) edge = mesh.AddEdge([n1,n2])
mesh.ExtrusionSweep([edge], MakeDirStruct(0,7,0), 1) mesh.ExtrusionSweep([edge], smesh.MakeDirStruct(0,7,0), 1)
mesh.ExtrusionSweep( mesh.GetElementsByType(FACE), MakeDirStruct(0,0,5), 7) mesh.ExtrusionSweep( mesh.GetElementsByType(SMESH.FACE), smesh.MakeDirStruct(0,0,5), 7)
assert( 2 == len( mesh.GetIdsFromFilter( volumeFilter ))) assert( 2 == len( mesh.GetIdsFromFilter( volumeFilter )))

View File

@ -29,7 +29,7 @@ twoFaces = geompy.MakeCompound([f1,f2])
## ----------- ## -----------
dim = SMESH.BND_2DFROM3D dim = SMESH.BND_2DFROM3D
init_mesh = Mesh(box, "box") init_mesh = smesh.Mesh(box, "box")
init_mesh.AutomaticHexahedralization() # it makes 3 x 3 x 3 hexahedrons init_mesh.AutomaticHexahedralization() # it makes 3 x 3 x 3 hexahedrons
# remove some faces # remove some faces
@ -39,7 +39,7 @@ rm_face = faces[ : nb_faces/2]
init_mesh.RemoveElements( rm_face ) init_mesh.RemoveElements( rm_face )
# restore boundary in this mesh # restore boundary in this mesh
mesh = CopyMesh( init_mesh, "2D from 3D") mesh = smesh.CopyMesh( init_mesh, "2D from 3D")
groupName = "bnd 2D" groupName = "bnd 2D"
nb, new_mesh, new_group = mesh.MakeBoundaryElements(dim, groupName) nb, new_mesh, new_group = mesh.MakeBoundaryElements(dim, groupName)
@ -59,7 +59,7 @@ nb, new_mesh, new_group = init_mesh.MakeBoundaryElements(dim, groupName, meshNam
## ----------- ## -----------
dim = SMESH.BND_1DFROM2D dim = SMESH.BND_1DFROM2D
init_mesh = Mesh(f1, "2D mesh") init_mesh = smesh.Mesh(f1, "2D mesh")
init_mesh.AutomaticHexahedralization() init_mesh.AutomaticHexahedralization()
# remove some edges # remove some edges
@ -70,7 +70,7 @@ init_mesh.RemoveElements( rm_edge )
# restore boundary edges in this mesh # restore boundary edges in this mesh
mesh = CopyMesh( init_mesh, "1D from 2D") mesh = smesh.CopyMesh( init_mesh, "1D from 2D")
groupName = "bnd 1D" groupName = "bnd 1D"
nb, new_mesh, new_group = mesh.MakeBoundaryElements(dim, groupName) nb, new_mesh, new_group = mesh.MakeBoundaryElements(dim, groupName)
@ -91,7 +91,7 @@ nb, new_mesh, new_group = init_mesh.MakeBoundaryElements(dim, groupName, meshNam
## ------------------ ## ------------------
dim = SMESH.BND_1DFROM3D dim = SMESH.BND_1DFROM3D
init_mesh = Mesh(box, "box") init_mesh = smesh.Mesh(box, "box")
init_mesh.AutomaticHexahedralization() # it makes 3 x 3 x 3 hexahedrons init_mesh.AutomaticHexahedralization() # it makes 3 x 3 x 3 hexahedrons
# remove all edges # remove all edges
rm_edges = init_mesh.GetElementsByType( SMESH.EDGE ) rm_edges = init_mesh.GetElementsByType( SMESH.EDGE )
@ -102,7 +102,7 @@ fGroup1 = init_mesh.Group( f1, "f1" )
fGroup2 = init_mesh.Group( f2, "f2" ) fGroup2 = init_mesh.Group( f2, "f2" )
# make 1D boundary around groups in this mesh # make 1D boundary around groups in this mesh
mesh = CopyMesh( init_mesh, "1D from 2D groups", toCopyGroups=True) mesh = smesh.CopyMesh( init_mesh, "1D from 2D groups", toCopyGroups=True)
groups = mesh.GetGroups() groups = mesh.GetGroups()
nb, new_mesh, new_group = mesh.MakeBoundaryElements(dim, groupName,groups=groups) nb, new_mesh, new_group = mesh.MakeBoundaryElements(dim, groupName,groups=groups)