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/
20 #==============================================================================
\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
28 # Geometrie du cas test
\r
31 from geompy import *
\r
34 # base de l'assemblage
\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
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
50 baseId = addToStudy(base,"base")
\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
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
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
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
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
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
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
108 travId = addToStudy(trav,"trav")
\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
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
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
130 right_cleaner = MakeMirrorByPlane(left_cleaner,symPlaneYZ)
\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
136 rear_cleaner = MakeMirrorByPlane(front_cleaner,symPlaneXZ)
\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
148 weldId = addToStudy(weld,"weld")
\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
164 gg = ImportComponentGUI("GEOM")
\r
165 import salome_ComponentGUI
\r
166 if not isinstance(gg, type(salome_ComponentGUI)):
\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