Salome HOME
Comment out useless message output to speed up change hypothesis operation
[modules/smesh.git] / src / SMESH_SWIG / hole2pyGibi.py
1 # CEA/LGLS 2004, Francis KLOSS (OCC)
2 # ==================================
3
4 # Import
5 # ------
6
7 from geompy import *
8 from meshpy import *
9
10 # Piece
11 # -----
12
13 # A twice holed cube
14
15 # Geometry
16 # --------
17
18 ox = 0
19 oy = 0
20 oz = 0
21
22 longueur = 200
23 largeur  = 100
24 hauteur  =  80
25
26 cylindre = 50
27
28 rayon = 20
29
30 # Points
31 # ------
32
33 piecePoint1 = MakeVertex(ox         , oy, oz)
34 piecePoint2 = MakeVertex(ox+longueur, oy, oz)
35 piecePoint3 = MakeVertex(ox+longueur, oy, oz+largeur)
36 piecePoint4 = MakeVertex(ox         , oy, oz+largeur)
37
38 cz = oz+largeur/2
39
40 cylPoint1 = MakeVertex(ox+cylindre         , oy, cz-rayon)
41 cylPoint2 = MakeVertex(ox+longueur-cylindre, oy, cz-rayon)
42 cylPoint3 = MakeVertex(ox+longueur-cylindre, oy, cz+rayon)
43 cylPoint4 = MakeVertex(ox+cylindre         , oy, cz+rayon)
44
45 # Edges
46 # -----
47
48 pieceEdge1 = MakeEdge(piecePoint1, piecePoint4)
49 pieceEdge2 = MakeEdge(piecePoint1, cylPoint1)
50 pieceEdge3 = MakeEdge(piecePoint4, cylPoint4)
51
52 pieceEdge4 = MakeEdge(piecePoint2, piecePoint3)
53 pieceEdge5 = MakeEdge(piecePoint2, cylPoint2)
54 pieceEdge6 = MakeEdge(piecePoint3, cylPoint3)
55
56 pieceEdge7 = MakeEdge(cylPoint1, cylPoint2)
57 pieceEdge8 = MakeEdge(cylPoint3, cylPoint4)
58
59 cylEdge1 = MakeArc(cylPoint1, MakeVertex(ox+cylindre-rayon         , oy, cz), cylPoint4)
60 cylEdge2 = MakeArc(cylPoint1, MakeVertex(ox+cylindre+rayon         , oy, cz), cylPoint4)
61 cylEdge3 = MakeArc(cylPoint2, MakeVertex(ox+longueur-cylindre-rayon, oy, cz), cylPoint3)
62 cylEdge4 = MakeArc(cylPoint2, MakeVertex(ox+longueur-cylindre+rayon, oy, cz), cylPoint3)
63
64 # Faces
65 # -----
66
67 pieceFace1 = MakeQuad4Vertices(piecePoint1, piecePoint2, cylPoint2 , cylPoint1 )
68 pieceFace2 = MakeQuad         (pieceEdge1 , pieceEdge2 , cylEdge1  , pieceEdge3)
69 pieceFace3 = MakeQuad4Vertices(piecePoint3, piecePoint4, cylPoint4 , cylPoint3 )
70 pieceFace4 = MakeQuad         (pieceEdge4 , pieceEdge5 , cylEdge4  , pieceEdge6)
71 pieceFace5 = MakeQuad         (pieceEdge7 , cylEdge3   , pieceEdge8, cylEdge2  )
72
73 # Solids
74 # ------
75
76 pieceVector = MakeVectorDXDYDZ(0, 1, 0)
77
78 pieceSolid1 = MakePrismVecH(pieceFace1, pieceVector, hauteur)
79 pieceSolid2 = MakePrismVecH(pieceFace2, pieceVector, hauteur)
80 pieceSolid3 = MakePrismVecH(pieceFace3, pieceVector, hauteur)
81 pieceSolid4 = MakePrismVecH(pieceFace4, pieceVector, hauteur)
82 pieceSolid5 = MakePrismVecH(pieceFace5, pieceVector, hauteur)
83
84 # Compound
85 # --------
86
87 c_l = []
88 c_l.append(pieceSolid1)
89 c_l.append(pieceSolid2)
90 c_l.append(pieceSolid3)
91 c_l.append(pieceSolid4)
92 c_l.append(pieceSolid5)
93
94 c_cpd = MakeCompound(c_l)
95 piece = MakeGlueFaces(c_cpd, 1.e-5)
96
97 # Add in study
98 # ------------
99
100 piece_id = addToStudy(piece, "Hole2pyGibi")
101
102 # Meshing
103 # =======
104
105 # Create hexahedrical mesh on piece
106 # ---------------------------------
107
108 m_hexa=MeshHexa(piece, 4, "Hole2pyGibiHexa")
109
110 # Compute
111 # -------
112
113 m_hexa.Compute()