Salome HOME
Merge from V6_main 11/02/2013
[modules/smesh.git] / doc / salome / examples / quality_controls_ex05.py
1 # Free Nodes
2
3 import salome
4 import geompy
5
6 import smesh
7
8 # create box
9 box = geompy.MakeBox(0., 0., 0., 100., 200., 300.)
10 idbox = geompy.addToStudy(box, "box")
11
12 # create a mesh
13 mesh = smesh.Mesh(box, "Mesh_free_nodes")
14 algo = mesh.Segment()
15 algo.NumberOfSegments(10)
16 algo = mesh.Triangle(smesh.MEFISTO)
17 algo.MaxElementArea(150.)
18 mesh.Compute() 
19
20 # Remove some elements to obtain free nodes
21 # Criterion : AREA < 80.
22 area_margin = 80.
23
24 aFilter = smesh.GetFilter(smesh.FACE, smesh.FT_Area, smesh.FT_LessThan, area_margin)
25
26 anIds = mesh.GetIdsFromFilter(aFilter)
27
28 mesh.RemoveElements(anIds)
29
30 # criterion : free nodes
31 aFilter = smesh.GetFilter(smesh.NODE, smesh.FT_FreeNodes) 
32 anNodeIds = mesh.GetIdsFromFilter(aFilter)
33
34 # create a group
35 aGroup = mesh.CreateEmptyGroup(smesh.NODE, "Free_nodes")
36 aGroup.Add(anNodeIds)
37
38 # print the result
39 print "Criterion: Free nodes Nb = ", len(anNodeIds)
40 j = 1
41 for i in range(len(anNodeIds)):
42   if j > 20: j = 1; print ""
43   print anNodeIds[i],
44   j = j + 1
45   pass
46 print ""
47
48 salome.sg.updateObjBrowser(1)