Salome HOME
Merge with OCC-V2_1_0_deb
[modules/geom.git] / src / GEOM_SWIG / GEOM_tube_geom_gg2.py
1 #==============================================================================\r
2 #  Info.\r
3 #  Bug (from script, bug)   : tube_geom_gg2_corrected.py, PAL5243\r
4 #  Modified                 : 25/11/2004\r
5 #  Author                   : Kovaltchuk Alexey\r
6 #  Project                  : PAL/SALOME\r
7 #==============================================================================\r
8 #\r
9 # Geometrie du cas test\r
10 #\r
11 \r
12 from geompy import *\r
13 import salome\r
14 #\r
15 # base de l'assemblage\r
16 #\r
17 L_base = 300.\r
18 l_base = 150.\r
19 h_base = 75.\r
20 e_base = 6.\r
21 \r
22 base_bot = MakeBox(0.,0.,0.,L_base,l_base,e_base)\r
23 base_top = MakeTranslation(base_bot,0.,0.,h_base-e_base)\r
24 base_front = MakeBox(0,0,0,L_base,e_base,h_base)\r
25 base_rear = MakeTranslation(base_front,0.,l_base,0.)\r
26 \r
27 tmp = MakeBoolean(base_top,base_rear,3)\r
28 tmp = MakeBoolean(tmp,base_bot,3)\r
29 base = MakeBoolean(tmp,base_front,3)\r
30 \r
31 baseId = addToStudy(base,"base")\r
32 #\r
33 # traverse\r
34 #\r
35 L_trav = 60.\r
36 h_trav = 300.\r
37 e_trav = 7.\r
38 marge = 15.\r
39 \r
40 flange_left = MakeBox(0.,0.,0,e_trav,L_trav,h_trav)\r
41 flange_right = MakeTranslation(flange_left,L_trav-e_trav,0.,0.)\r
42 flange_front = MakeBox(0.,0.,0,L_trav,e_trav,h_trav)\r
43 flange_rear = MakeTranslation(flange_front,0.,L_trav-e_trav,0.)\r
44 \r
45 tmp = MakeBoolean(flange_left,flange_rear,3)\r
46 tmp = MakeBoolean(tmp,flange_right,3)\r
47 flange = MakeBoolean(tmp,flange_front,3)\r
48 #\r
49 # left chamfer\r
50 #\r
51 import math\r
52 length = e_trav/math.sin(math.pi/4.)\r
53 yaxis = MakeVectorDXDYDZ(0.,1.,0.)\r
54 cut_left = MakeBox(0.,-marge,0.,-length,L_trav+marge,length)\r
55 cut_left = MakeRotation(cut_left,yaxis,-math.pi/4.)\r
56 cut_left = MakeTranslation(cut_left,e_trav,0.,0.)\r
57 #\r
58 # right chamfer\r
59 #\r
60 symPlaneYZ = MakePlane(\r
61      MakeVertex(L_trav/2.,0.,0.),\r
62      MakeVectorDXDYDZ(1.,0.,0.), 10000. )\r
63 cut_right = MakeMirrorByPlane(cut_left,symPlaneYZ)\r
64 #\r
65 # front chamfer\r
66 #\r
67 xaxis = MakeVectorDXDYDZ(1.,0.,0.)\r
68 cut_front = MakeBox(-marge,0.,0.,L_trav+marge,length,length)\r
69 cut_front = MakeRotation(cut_front,xaxis,3.*math.pi/4.)\r
70 cut_front = MakeTranslation(cut_front,0.,e_trav,0.)\r
71 #\r
72 # rear chamfer\r
73 #\r
74 symPlaneXZ = MakePlane(\r
75      MakeVertex(0.,L_trav/2.,0.),\r
76      MakeVectorDXDYDZ(0.,1.,0.), 10000. )\r
77 cut_rear = MakeMirrorByPlane(cut_front,symPlaneXZ)\r
78 #\r
79 # chamfer\r
80 #\r
81 trav = MakeBoolean(flange,cut_left,2)\r
82 trav = MakeBoolean(trav,cut_right,2)\r
83 trav = MakeBoolean(trav,cut_front,2)\r
84 trav = MakeBoolean(trav,cut_rear,2)\r
85 trav = MakeTranslation(trav,\r
86                        L_base/2.-L_trav/2.,\r
87                        l_base/2.-L_trav/2.,\r
88                        h_base)\r
89 travId = addToStudy(trav,"trav")\r
90 #\r
91 # Welding\r
92 #\r
93 ground = MakeBox(-1000.,-1000.,0.,1000.,1000.,-1000.)\r
94 weld_left = MakeBoolean(cut_left,ground,2)\r
95 weld_right = MakeBoolean(cut_right,ground,2)\r
96 weld_front = MakeBoolean(cut_front,ground,2)\r
97 weld_rear = MakeBoolean(cut_rear,ground,2)\r
98 #\r
99 # Assembly\r
100 #\r
101 coarse_weld = MakeBoolean(weld_left,weld_rear,3)\r
102 coarse_weld = MakeBoolean(coarse_weld,weld_right,3)\r
103 coarse_weld = MakeBoolean(coarse_weld,weld_front,3)\r
104 #\r
105 # Cleaners\r
106 #\r
107 left_cleaner = MakeBox(0.,-10*marge,0.,-10.*marge,10.*marge,10.*marge)\r
108 left_cleaner = MakeRotation(left_cleaner,yaxis,math.pi/4.)\r
109 left_cleaner = MakeTranslation(left_cleaner,-e_trav-2.*marge,0.,-2.*marge)\r
110 \r
111 right_cleaner = MakeMirrorByPlane(left_cleaner,symPlaneYZ)\r
112 \r
113 front_cleaner = MakeBox(-10*marge,0.,0.,10.*marge,10.*marge,10.*marge)\r
114 front_cleaner = MakeRotation(front_cleaner,xaxis,3.*math.pi/4.)\r
115 front_cleaner = MakeTranslation(front_cleaner,0.,2.*marge-e_trav,2.*marge)\r
116 \r
117 rear_cleaner = MakeMirrorByPlane(front_cleaner,symPlaneXZ)\r
118 #\r
119 # Welding\r
120 #\r
121 weld = MakeBoolean(coarse_weld,left_cleaner,2)\r
122 weld = MakeBoolean(weld,rear_cleaner,2)\r
123 weld = MakeBoolean(weld,right_cleaner,2)\r
124 weld = MakeBoolean(weld,front_cleaner,2)\r
125 weld = MakeTranslation(weld,\r
126                        L_base/2.-L_trav/2.,\r
127                        l_base/2.-L_trav/2.,\r
128                        h_base)\r
129 weldId = addToStudy(weld,"weld")\r
130 #\r
131 # Assembly\r
132 #\r
133 #assemblage = MakePartition([base.,weld.GetName()])\r
134 assemblage = MakePartition([base,weld])\r
135 addToStudy(assemblage, "base+weld")\r
136 #print assemblage.GetName()\r
137 #print trav.GetName()\r
138 #assemblage = MakePartition([assemblage.GetName(),trav.GetName()])\r
139 assemblage = MakePartition([assemblage,trav])\r
140 assemblageId = addToStudy(assemblage, "assemblage")\r
141 \r
142 #\r
143 # Display\r
144 #\r
145 gg.createAndDisplayGO(baseId)\r
146 gg.setTransparency(baseId,0.5)\r
147 gg.setDisplayMode(baseId,1)\r
148 gg.setColor(baseId,255,0,0)\r
149 gg.createAndDisplayGO(travId)\r
150 gg.setTransparency(travId,0.5)\r
151 gg.setDisplayMode(travId,1)\r
152 gg.setColor(travId,255,0,0)\r
153 gg.createAndDisplayGO(weldId)\r
154 gg.setTransparency(weldId,0.5)\r
155 gg.setDisplayMode(weldId,1)\r
156 gg.setColor(weldId,0,0,255)\r
157 \r