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