1 # Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
2 # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
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.
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.
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
18 # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
20 #==============================================================================
22 # Bug (from script, bug) : tube_geom_gg2_corrected.py, PAL5243
23 # Modified : 25/11/2004
24 # Author : Kovaltchuk Alexey
25 # Project : PAL/SALOME
26 #==============================================================================
28 # Geometrie du cas test
34 # base de l'assemblage
41 base_bot = MakeBox(0.,0.,0.,L_base,l_base,e_base)
42 base_top = MakeTranslation(base_bot,0.,0.,h_base-e_base)
43 base_front = MakeBox(0,0,0,L_base,e_base,h_base)
44 base_rear = MakeTranslation(base_front,0.,l_base,0.)
46 tmp = MakeBoolean(base_top,base_rear,3)
47 tmp = MakeBoolean(tmp,base_bot,3)
48 base = MakeBoolean(tmp,base_front,3)
50 baseId = addToStudy(base,"base")
59 flange_left = MakeBox(0.,0.,0,e_trav,L_trav,h_trav)
60 flange_right = MakeTranslation(flange_left,L_trav-e_trav,0.,0.)
61 flange_front = MakeBox(0.,0.,0,L_trav,e_trav,h_trav)
62 flange_rear = MakeTranslation(flange_front,0.,L_trav-e_trav,0.)
64 tmp = MakeBoolean(flange_left,flange_rear,3)
65 tmp = MakeBoolean(tmp,flange_right,3)
66 flange = MakeBoolean(tmp,flange_front,3)
71 length = e_trav/math.sin(math.pi/4.)
72 yaxis = MakeVectorDXDYDZ(0.,1.,0.)
73 cut_left = MakeBox(0.,-marge,0.,-length,L_trav+marge,length)
74 cut_left = MakeRotation(cut_left,yaxis,-math.pi/4.)
75 cut_left = MakeTranslation(cut_left,e_trav,0.,0.)
79 symPlaneYZ = MakePlane(
80 MakeVertex(L_trav/2.,0.,0.),
81 MakeVectorDXDYDZ(1.,0.,0.), 10000. )
82 cut_right = MakeMirrorByPlane(cut_left,symPlaneYZ)
86 xaxis = MakeVectorDXDYDZ(1.,0.,0.)
87 cut_front = MakeBox(-marge,0.,0.,L_trav+marge,length,length)
88 cut_front = MakeRotation(cut_front,xaxis,3.*math.pi/4.)
89 cut_front = MakeTranslation(cut_front,0.,e_trav,0.)
93 symPlaneXZ = MakePlane(
94 MakeVertex(0.,L_trav/2.,0.),
95 MakeVectorDXDYDZ(0.,1.,0.), 10000. )
96 cut_rear = MakeMirrorByPlane(cut_front,symPlaneXZ)
100 trav = MakeBoolean(flange,cut_left,2)
101 trav = MakeBoolean(trav,cut_right,2)
102 trav = MakeBoolean(trav,cut_front,2)
103 trav = MakeBoolean(trav,cut_rear,2)
104 trav = MakeTranslation(trav,
108 travId = addToStudy(trav,"trav")
112 ground = MakeBox(-1000.,-1000.,0.,1000.,1000.,-1000.)
113 weld_left = MakeBoolean(cut_left,ground,2)
114 weld_right = MakeBoolean(cut_right,ground,2)
115 weld_front = MakeBoolean(cut_front,ground,2)
116 weld_rear = MakeBoolean(cut_rear,ground,2)
120 coarse_weld = MakeBoolean(weld_left,weld_rear,3)
121 coarse_weld = MakeBoolean(coarse_weld,weld_right,3)
122 coarse_weld = MakeBoolean(coarse_weld,weld_front,3)
126 left_cleaner = MakeBox(0.,-10*marge,0.,-10.*marge,10.*marge,10.*marge)
127 left_cleaner = MakeRotation(left_cleaner,yaxis,math.pi/4.)
128 left_cleaner = MakeTranslation(left_cleaner,-e_trav-2.*marge,0.,-2.*marge)
130 right_cleaner = MakeMirrorByPlane(left_cleaner,symPlaneYZ)
132 front_cleaner = MakeBox(-10*marge,0.,0.,10.*marge,10.*marge,10.*marge)
133 front_cleaner = MakeRotation(front_cleaner,xaxis,3.*math.pi/4.)
134 front_cleaner = MakeTranslation(front_cleaner,0.,2.*marge-e_trav,2.*marge)
136 rear_cleaner = MakeMirrorByPlane(front_cleaner,symPlaneXZ)
140 weld = MakeBoolean(coarse_weld,left_cleaner,2)
141 weld = MakeBoolean(weld,rear_cleaner,2)
142 weld = MakeBoolean(weld,right_cleaner,2)
143 weld = MakeBoolean(weld,front_cleaner,2)
144 weld = MakeTranslation(weld,
148 weldId = addToStudy(weld,"weld")
152 #assemblage = MakePartition([base.,weld.GetName()])
153 assemblage = MakePartition([base,weld])
154 addToStudy(assemblage, "base+weld")
155 #print assemblage.GetName()
156 #print trav.GetName()
157 #assemblage = MakePartition([assemblage.GetName(),trav.GetName()])
158 assemblage = MakePartition([assemblage,trav])
159 assemblageId = addToStudy(assemblage, "assemblage")
164 gg = ImportComponentGUI("GEOM")
165 import salome_ComponentGUI
166 if not isinstance(gg, type(salome_ComponentGUI)):
168 gg.createAndDisplayGO(baseId)
169 gg.setTransparency(baseId,0.5)
170 gg.setDisplayMode(baseId,1)
171 gg.setColor(baseId,255,0,0)
172 gg.createAndDisplayGO(travId)
173 gg.setTransparency(travId,0.5)
174 gg.setDisplayMode(travId,1)
175 gg.setColor(travId,255,0,0)
176 gg.createAndDisplayGO(weldId)
177 gg.setTransparency(weldId,0.5)
178 gg.setDisplayMode(weldId,1)
179 gg.setColor(weldId,0,0,255)