Salome HOME
Merge from V6_main 28/02/2013
[modules/smesh.git] / doc / salome / examples / quality_controls_ex06.py
1 # Free Faces
2
3 import salome
4 import geompy
5
6 ####### GEOM part ########
7
8 Box_1 = geompy.MakeBoxDXDYDZ(200, 200, 200)
9 Box_1_vertex_6 = geompy.GetSubShape(Box_1, [6])
10 Box_1 = geompy.GetMainShape(Box_1_vertex_6)
11 Box_1_vertex_16 = geompy.GetSubShape(Box_1, [16])
12 Box_1 = geompy.GetMainShape(Box_1_vertex_16)
13 Box_1_vertex_11 = geompy.GetSubShape(Box_1, [11])
14 Box_1 = geompy.GetMainShape(Box_1_vertex_11)
15 Plane_1 = geompy.MakePlaneThreePnt(Box_1_vertex_6, Box_1_vertex_16, Box_1_vertex_11, 2000)
16 Partition_1 = geompy.MakePartition([Box_1], [Plane_1], [], [], geompy.ShapeType["SOLID"], 0, [], 0)
17
18 Box_1_vertex_19 = geompy.GetSubShape(Box_1, [19])
19 Box_1_vertex_21 = geompy.GetSubShape(Box_1, [21])
20 Plane_2 = geompy.MakePlaneThreePnt(Box_1_vertex_16, Box_1_vertex_19, Box_1_vertex_21, 2000)
21
22 geompy.addToStudy( Box_1, "Box_1" )
23 geompy.addToStudyInFather( Box_1, Box_1_vertex_6, "Box_1:vertex_6" )
24 geompy.addToStudyInFather( Box_1, Box_1_vertex_16, "Box_1:vertex_16" )
25 geompy.addToStudyInFather( Box_1, Box_1_vertex_11, "Box_1:vertex_11" )
26 geompy.addToStudy( Plane_1, "Plane_1" )
27 geompy.addToStudy( Partition_1, "Partition_1" )
28 geompy.addToStudyInFather( Box_1, Box_1_vertex_19, "Box_1:vertex_19" )
29 geompy.addToStudyInFather( Box_1, Box_1_vertex_21, "Box_1:vertex_21" )
30 geompy.addToStudy( Plane_2, "Plane_2" )
31
32 ###### SMESH part ######
33 import smesh
34
35 import StdMeshers
36
37 Mesh_1 = smesh.Mesh(Partition_1)
38 Regular_1D = Mesh_1.Segment()
39 Max_Size_1 = Regular_1D.MaxSize(34.641)
40 MEFISTO_2D = Mesh_1.Triangle()
41 Tetrahedronn = Mesh_1.Tetrahedron()
42 isDone = Mesh_1.Compute()
43
44 # create a group of free faces
45 aFilter = smesh.GetFilter(smesh.FACE, smesh.FT_FreeFaces )
46 aFaceIds = Mesh_1.GetIdsFromFilter(aFilter)
47
48 aGroup = Mesh_1.CreateEmptyGroup(smesh.FACE, "Free_faces")
49 aGroup.Add(aFaceIds)
50
51 # print the result
52 print "Criterion: Free faces Nb = ", len(aFaceIds)
53 j = 1
54 for i in range(len(aFaceIds)):
55   if j > 20: j = 1; print ""
56   print aFaceIds[i],
57   j = j + 1
58   pass
59 print ""
60
61 #filter faces from plane 2
62 aFilter = smesh.GetFilter(smesh.FACE, smesh.FT_BelongToPlane, Plane_2)
63 aFaceIds = Mesh_1.GetIdsFromFilter(aFilter)
64 aGroup.Remove(aFaceIds)
65
66 # create a group of shared faces (located on partition boundary inside box)
67 aFilter = smesh.GetFilter(smesh.FACE, smesh.FT_BelongToPlane, Plane_1)
68 aFaceIds = Mesh_1.GetIdsFromFilter(aFilter)
69
70 aGroup = Mesh_1.CreateEmptyGroup(smesh.FACE, "Shared_faces")
71 aGroup.Add(aFaceIds)
72
73 salome.sg.updateObjBrowser(1)