Salome HOME
PR: synchro V6_main tag mergeto_V7_main_11Feb13
[modules/smesh.git] / doc / salome / examples / quality_controls_ex04.py
1 # Free Edges
2
3 import SMESH_mechanic
4
5 smesh  = SMESH_mechanic.smesh
6 mesh   = SMESH_mechanic.mesh
7 salome = SMESH_mechanic.salome
8
9 aFilterMgr = smesh.CreateFilterManager()
10
11 # Remove some elements to obtain free edges
12 # Criterion : AREA > 95.
13 area_margin = 95.
14
15 aFilter = smesh.GetFilter(smesh.FACE, smesh.FT_Area, smesh.FT_MoreThan, area_margin)
16
17 anIds = mesh.GetIdsFromFilter(aFilter)
18
19 mesh.RemoveElements(anIds)
20
21 # Criterion : Free Edges
22 aBorders = mesh.GetFreeBorders() 
23
24 # create groups
25 aGroupF = mesh.CreateEmptyGroup(smesh.FACE, "Faces with free edges")
26 aGroupN = mesh.CreateEmptyGroup(smesh.NODE, "Nodes on free edges")
27
28 # fill groups with elements, corresponding to the criterion
29 print ""
30 print "Criterion: Free edges Nb = ", len(aBorders)
31 for i in range(len(aBorders)):
32   aBorder = aBorders[i]
33   print "Face # ", aBorder.myElemId, " : Edge between nodes (",
34   print aBorder.myPnt1, ", ", aBorder.myPnt2, ")"
35
36   aGroupF.Add([aBorder.myElemId])
37   aGroupN.Add([aBorder.myPnt1, aBorder.myPnt2])
38
39 salome.sg.updateObjBrowser(1)