Salome HOME
Join modifications from branch OCC_debug_for_3_2_0b1
[modules/geom.git] / src / GEOM_SWIG / GEOM_tube_geom_gg2.py
1 #  Copyright (C) 2005  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
2 #  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
3 #
4 #  This library is free software; you can redistribute it and/or
5 #  modify it under the terms of the GNU Lesser General Public
6 #  License as published by the Free Software Foundation; either
7 #  version 2.1 of the License.
8 #
9 #  This library is distributed in the hope that it will be useful,
10 #  but WITHOUT ANY WARRANTY; without even the implied warranty of
11 #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
12 #  Lesser General Public License for more details.
13 #
14 #  You should have received a copy of the GNU Lesser General Public
15 #  License along with this library; if not, write to the Free Software
16 #  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
17 #
18 #  See http://www.salome-platform.org/
19 #
20 #==============================================================================\r
21 #  Info.\r
22 #  Bug (from script, bug)   : tube_geom_gg2_corrected.py, PAL5243\r
23 #  Modified                 : 25/11/2004\r
24 #  Author                   : Kovaltchuk Alexey\r
25 #  Project                  : PAL/SALOME\r
26 #==============================================================================\r
27 #\r
28 # Geometrie du cas test\r
29 #\r
30 \r
31 from geompy import *\r
32 import salome\r
33 #\r
34 # base de l'assemblage\r
35 #\r
36 L_base = 300.\r
37 l_base = 150.\r
38 h_base = 75.\r
39 e_base = 6.\r
40 \r
41 base_bot = MakeBox(0.,0.,0.,L_base,l_base,e_base)\r
42 base_top = MakeTranslation(base_bot,0.,0.,h_base-e_base)\r
43 base_front = MakeBox(0,0,0,L_base,e_base,h_base)\r
44 base_rear = MakeTranslation(base_front,0.,l_base,0.)\r
45 \r
46 tmp = MakeBoolean(base_top,base_rear,3)\r
47 tmp = MakeBoolean(tmp,base_bot,3)\r
48 base = MakeBoolean(tmp,base_front,3)\r
49 \r
50 baseId = addToStudy(base,"base")\r
51 #\r
52 # traverse\r
53 #\r
54 L_trav = 60.\r
55 h_trav = 300.\r
56 e_trav = 7.\r
57 marge = 15.\r
58 \r
59 flange_left = MakeBox(0.,0.,0,e_trav,L_trav,h_trav)\r
60 flange_right = MakeTranslation(flange_left,L_trav-e_trav,0.,0.)\r
61 flange_front = MakeBox(0.,0.,0,L_trav,e_trav,h_trav)\r
62 flange_rear = MakeTranslation(flange_front,0.,L_trav-e_trav,0.)\r
63 \r
64 tmp = MakeBoolean(flange_left,flange_rear,3)\r
65 tmp = MakeBoolean(tmp,flange_right,3)\r
66 flange = MakeBoolean(tmp,flange_front,3)\r
67 #\r
68 # left chamfer\r
69 #\r
70 import math\r
71 length = e_trav/math.sin(math.pi/4.)\r
72 yaxis = MakeVectorDXDYDZ(0.,1.,0.)\r
73 cut_left = MakeBox(0.,-marge,0.,-length,L_trav+marge,length)\r
74 cut_left = MakeRotation(cut_left,yaxis,-math.pi/4.)\r
75 cut_left = MakeTranslation(cut_left,e_trav,0.,0.)\r
76 #\r
77 # right chamfer\r
78 #\r
79 symPlaneYZ = MakePlane(\r
80      MakeVertex(L_trav/2.,0.,0.),\r
81      MakeVectorDXDYDZ(1.,0.,0.), 10000. )\r
82 cut_right = MakeMirrorByPlane(cut_left,symPlaneYZ)\r
83 #\r
84 # front chamfer\r
85 #\r
86 xaxis = MakeVectorDXDYDZ(1.,0.,0.)\r
87 cut_front = MakeBox(-marge,0.,0.,L_trav+marge,length,length)\r
88 cut_front = MakeRotation(cut_front,xaxis,3.*math.pi/4.)\r
89 cut_front = MakeTranslation(cut_front,0.,e_trav,0.)\r
90 #\r
91 # rear chamfer\r
92 #\r
93 symPlaneXZ = MakePlane(\r
94      MakeVertex(0.,L_trav/2.,0.),\r
95      MakeVectorDXDYDZ(0.,1.,0.), 10000. )\r
96 cut_rear = MakeMirrorByPlane(cut_front,symPlaneXZ)\r
97 #\r
98 # chamfer\r
99 #\r
100 trav = MakeBoolean(flange,cut_left,2)\r
101 trav = MakeBoolean(trav,cut_right,2)\r
102 trav = MakeBoolean(trav,cut_front,2)\r
103 trav = MakeBoolean(trav,cut_rear,2)\r
104 trav = MakeTranslation(trav,\r
105                        L_base/2.-L_trav/2.,\r
106                        l_base/2.-L_trav/2.,\r
107                        h_base)\r
108 travId = addToStudy(trav,"trav")\r
109 #\r
110 # Welding\r
111 #\r
112 ground = MakeBox(-1000.,-1000.,0.,1000.,1000.,-1000.)\r
113 weld_left = MakeBoolean(cut_left,ground,2)\r
114 weld_right = MakeBoolean(cut_right,ground,2)\r
115 weld_front = MakeBoolean(cut_front,ground,2)\r
116 weld_rear = MakeBoolean(cut_rear,ground,2)\r
117 #\r
118 # Assembly\r
119 #\r
120 coarse_weld = MakeBoolean(weld_left,weld_rear,3)\r
121 coarse_weld = MakeBoolean(coarse_weld,weld_right,3)\r
122 coarse_weld = MakeBoolean(coarse_weld,weld_front,3)\r
123 #\r
124 # Cleaners\r
125 #\r
126 left_cleaner = MakeBox(0.,-10*marge,0.,-10.*marge,10.*marge,10.*marge)\r
127 left_cleaner = MakeRotation(left_cleaner,yaxis,math.pi/4.)\r
128 left_cleaner = MakeTranslation(left_cleaner,-e_trav-2.*marge,0.,-2.*marge)\r
129 \r
130 right_cleaner = MakeMirrorByPlane(left_cleaner,symPlaneYZ)\r
131 \r
132 front_cleaner = MakeBox(-10*marge,0.,0.,10.*marge,10.*marge,10.*marge)\r
133 front_cleaner = MakeRotation(front_cleaner,xaxis,3.*math.pi/4.)\r
134 front_cleaner = MakeTranslation(front_cleaner,0.,2.*marge-e_trav,2.*marge)\r
135 \r
136 rear_cleaner = MakeMirrorByPlane(front_cleaner,symPlaneXZ)\r
137 #\r
138 # Welding\r
139 #\r
140 weld = MakeBoolean(coarse_weld,left_cleaner,2)\r
141 weld = MakeBoolean(weld,rear_cleaner,2)\r
142 weld = MakeBoolean(weld,right_cleaner,2)\r
143 weld = MakeBoolean(weld,front_cleaner,2)\r
144 weld = MakeTranslation(weld,\r
145                        L_base/2.-L_trav/2.,\r
146                        l_base/2.-L_trav/2.,\r
147                        h_base)\r
148 weldId = addToStudy(weld,"weld")\r
149 #\r
150 # Assembly\r
151 #\r
152 #assemblage = MakePartition([base.,weld.GetName()])\r
153 assemblage = MakePartition([base,weld])\r
154 addToStudy(assemblage, "base+weld")\r
155 #print assemblage.GetName()\r
156 #print trav.GetName()\r
157 #assemblage = MakePartition([assemblage.GetName(),trav.GetName()])\r
158 assemblage = MakePartition([assemblage,trav])\r
159 assemblageId = addToStudy(assemblage, "assemblage")\r
160 \r
161 #\r
162 # Display\r
163 #\r
164 gg = ImportComponentGUI("GEOM")\r
165 import salome_ComponentGUI\r
166 if not isinstance(gg, type(salome_ComponentGUI)):\r
167     gg.initGeomGen()\r
168     gg.createAndDisplayGO(baseId)\r
169     gg.setTransparency(baseId,0.5)\r
170     gg.setDisplayMode(baseId,1)\r
171     gg.setColor(baseId,255,0,0)\r
172     gg.createAndDisplayGO(travId)\r
173     gg.setTransparency(travId,0.5)\r
174     gg.setDisplayMode(travId,1)\r
175     gg.setColor(travId,255,0,0)\r
176     gg.createAndDisplayGO(weldId)\r
177     gg.setTransparency(weldId,0.5)\r
178     gg.setDisplayMode(weldId,1)\r
179     gg.setColor(weldId,0,0,255)\r