X-Git-Url: http://git.salome-platform.org/gitweb/?p=modules%2Fsmesh.git;a=blobdiff_plain;f=doc%2Fsalome%2Fexamples%2Ffilters_ex01.py;h=02f3588c8dd795fa70c50864c2ce7b153e2f1594;hp=03f6c7477913aa069c759aa77bb7d1e718815952;hb=442fd64c19a6e27a339ca36264c15ec91732cf32;hpb=273e825aa2dcad11d9a07a3c37451d62685545ff diff --git a/doc/salome/examples/filters_ex01.py b/doc/salome/examples/filters_ex01.py index 03f6c7477..02f3588c8 100644 --- a/doc/salome/examples/filters_ex01.py +++ b/doc/salome/examples/filters_ex01.py @@ -1,28 +1,44 @@ # Aspect ratio +# This script demonstrates various usages of filters # create mesh from SMESH_mechanic import * -# get faces with aspect ratio > 1.5 -filter = smesh.GetFilter(SMESH.FACE, SMESH.FT_AspectRatio, SMESH.FT_MoreThan, 1.5) +# get faces with aspect ratio > 2.5 +filter = smesh.GetFilter(SMESH.FACE, SMESH.FT_AspectRatio, SMESH.FT_MoreThan, 2.5) ids = mesh.GetIdsFromFilter(filter) -print "Number of faces with aspect ratio > 1.5:", len(ids) +print("Number of faces with aspect ratio > 2.5:", len(ids)) + +# get faces with aspect ratio > 1.5 +filter = smesh.GetFilter(SMESH.FACE, SMESH.FT_AspectRatio, '>', 1.5, mesh=mesh) +ids = filter.GetIDs() +print("Number of faces with aspect ratio > 1.5:", len(ids)) # copy the faces with aspect ratio > 1.5 to another mesh; -# this demostrates that a filter can be used where usually a group or submesh is acceptable -filter.SetMesh( mesh.GetMesh() ) +# this demostrates that a filter can be used where usually a group or sub-mesh is acceptable +filter.SetMesh( mesh.GetMesh() ) # - actually non necessary as mesh is set at filter creation mesh2 = smesh.CopyMesh( filter, "AR > 1.5" ) -print "Number of copied faces with aspect ratio > 1.5:", mesh2.NbFaces() +print("Number of copied faces with aspect ratio > 1.5:", mesh2.NbFaces()) -# create a Group of faces with Aspect Ratio < 1.5 +# create a group (Group on Filter) of faces with Aspect Ratio < 1.5 group = mesh.MakeGroup("AR < 1.5", SMESH.FACE, SMESH.FT_AspectRatio, '<', 1.5) -print "Number of faces with aspect ratio < 1.5:", group.Size() +print("Number of faces with aspect ratio < 1.5:", group.Size()) # combine several criteria to Create a Group of only Triangular faces with Aspect Ratio < 1.5; # note that contents of a GroupOnFilter is dynamically updated as the mesh changes crit = [ smesh.GetCriterion( SMESH.FACE, SMESH.FT_AspectRatio, '<', 1.5, BinaryOp=SMESH.FT_LogicalAND ), smesh.GetCriterion( SMESH.FACE, SMESH.FT_ElemGeomType,'=', SMESH.Geom_TRIANGLE ) ] -filter = smesh.GetFilterFromCriteria( crit ) -triaGroup = mesh.GroupOnFilter( SMESH.FACE, "Tria AR < 1.5", filter ) -print "Number of triangles with aspect ratio < 1.5:", triaGroup.Size() +triaGroup = mesh.MakeGroupByCriteria( "Tria AR < 1.5", crit ) +print("Number of triangles with aspect ratio < 1.5:", triaGroup.Size()) + +# get range of values of Aspect Ratio of all faces in the mesh +aspects = mesh.GetMinMax( SMESH.FT_AspectRatio ) +print("MESH: Min aspect = %s, Max aspect = %s" % ( aspects[0], aspects[1] )) + +# get max value of Aspect Ratio of faces in triaGroup +grAspects = mesh.GetMinMax( SMESH.FT_AspectRatio, triaGroup ) +print("GROUP: Max aspect = %s" % grAspects[1]) +# get Aspect Ratio of an element +aspect = mesh.FunctorValue( SMESH.FT_AspectRatio, ids[0] ) +print("Aspect ratio of the face %s = %s" % ( ids[0], aspect ))