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