1 #@ MODIF defi_cable_bp_ops Macro DATE 04/04/2007 AUTEUR VIVAN L.VIVAN
2 # -*- coding: iso-8859-1 -*-
3 # CONFIGURATION MANAGEMENT OF EDF VERSION
4 # ======================================================================
5 # COPYRIGHT (C) 1991 - 2003 EDF R&D WWW.CODE-ASTER.ORG
6 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
7 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
8 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
9 # (AT YOUR OPTION) ANY LATER VERSION.
11 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
12 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
13 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
14 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
16 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
17 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
18 # 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
19 # ======================================================================
20 # RESPONSABLE ASSIRE A.ASSIRE
22 # ===========================================================================
23 # CORPS DE LA MACRO "DEFI_CABLE_BP"
24 # -------------------------------------
40 # PRESENT OUI ou NON deux fois
44 # ===========================================================================
48 def defi_cable_bp_ops(self,MODELE,CHAM_MATER,CARA_ELEM,GROUP_MA_BETON,
49 DEFI_CABLE,TYPE_ANCRAGE,TENSION_INIT,RECUL_ANCRAGE,
50 RELAXATION,CONE,TITRE,INFO,**args):
53 Ecriture de la macro DEFI_CABLE_BP
56 import aster,string, types
57 from Utilitai.Utmess import UTMESS
60 # On importe les definitions des commandes a utiliser dans la macro
61 DEFI_GROUP = self.get_cmd('DEFI_GROUP')
62 IMPR_RESU = self.get_cmd('IMPR_RESU')
63 DEFI_CABLE_OP = self.get_cmd('DEFI_CABLE_OP')
64 RECU_TABLE = self.get_cmd('RECU_TABLE')
65 IMPR_TABLE = self.get_cmd('IMPR_TABLE')
66 IMPR_CO = self.get_cmd('IMPR_CO')
68 # La macro compte pour 1 dans la numerotation des commandes
71 # Le concept sortant (de type char_meca) est nomme CHCABLE dans
72 # le contexte de la macro
74 self.DeclareOut('__DC',self.sd)
76 # ---------------------------------------------------------------------------- #
81 # RECUPERATION DES INFOS DONNEES PAR LE MOT-CLE "CONE"
84 dCONE=CONE[0].cree_dict_valeurs(CONE[0].mc_liste)
85 for i in dCONE.keys():
86 if dCONE[i]==None : del dCONE[i]
88 RAYON = dCONE['RAYON']
89 LONGUEUR = dCONE['LONGUEUR']
92 motscles['CONE'].append( dCONE )
94 # RECUPERATION DU MAILLAGE A PARTIR DU MODELE
95 __MAIL = aster.getvectjev( string.ljust(MODELE.nom,8) + '.MODELE .NOMA ' )
96 __MAIL= __MAIL[0].strip()
97 MAILLAGE = self.get_sd_avant_etape(__MAIL,self)
99 # DEFINITION DU NOM DES GROUP_NO
101 __LGNO = MAILLAGE.LIST_GROUP_NO()
104 __LGN1.append( i[0][:len(__NOM)] )
106 __NB = __LGN1.count(__NOM)
108 # FIN RECUPERATION DES INFOS DONNEES PAR LE MOT-CLE "CONE"
111 # RECUPERATION DES INFOS DONNEES PAR LE MOT-CLE "DEFI_CABLE"
114 for j in DEFI_CABLE :
115 dDEFI_CABLE.append(j.cree_dict_valeurs(j.mc_liste))
116 for i in dDEFI_CABLE[-1].keys():
117 if dDEFI_CABLE[-1][i]==None : del dDEFI_CABLE[-1][i]
120 # BOUCLE SUR LES FACTEURS DU MOT-CLE "DEFI_CABLE"
122 motscles['DEFI_CABLE']=[]
124 for i in dDEFI_CABLE:
126 # CAS OU L'ON A DEFINI LE MOT-CLE "CONE"
129 # CREATION DU PREMIER TUNNEL
131 if dCONE['PRESENT'][0] == 'OUI':
133 __NOM1 = __NOM + str( int(__NB) )
136 motscle2['CREA_GROUP_NO']=[]
138 if i.has_key('GROUP_MA') == 1:
139 __CAB = i['GROUP_MA']
141 if type(GROUP_MA_BETON) in [types.TupleType, types.ListType]: gma = list(GROUP_MA_BETON)
142 else: gma = [ GROUP_MA_BETON ]
145 motscle2= {'CREA_GROUP_NO': [{'LONGUEUR': LONGUEUR, 'RAYON': RAYON, 'OPTION': 'TUNNEL', 'GROUP_MA': gma, 'GROUP_MA_AXE': __CAB, 'NOM': __NOM1}]}
146 if i.has_key('MAILLE') == 1:
148 echo_mess.append( ' \n' )
149 echo_mess.append( ' # ---------------------------------------------------------------------------\n' )
150 echo_mess.append( ' # DEFI_CABLE_BP - Erreur : MAILLE INTERDIT - UTILISER GROUP_MA \n' )
151 echo_mess.append( ' # ---------------------------------------------------------------------------\n' )
152 message=string.join(echo_mess)
154 if i.has_key('GROUP_NO_ANCRAGE') == 1:
155 __PC1 = i['GROUP_NO_ANCRAGE'][0]
156 motscle2['CREA_GROUP_NO'][0]['GROUP_NO_ORIG'] = __PC1
157 if i.has_key('NOEUD_ANCRAGE') == 1:
158 __PC1 = i['NOEUD_ANCRAGE'][0]
159 motscle2['CREA_GROUP_NO'][0]['NOEUD_ORIG'] = __PC1
161 DEFI_GROUP( reuse=MAILLAGE,
168 # CREATION DU DEUXIEME TUNNEL
170 if dCONE['PRESENT'][1] == 'OUI':
172 __NOM2 = __NOM + str( int(__NB) )
175 motscle2['CREA_GROUP_NO']=[]
177 if i.has_key('GROUP_MA') == 1:
178 __CAB = i['GROUP_MA']
180 if type(GROUP_MA_BETON) in [types.TupleType, types.ListType]: gma = list(GROUP_MA_BETON)
181 else: gma = [ GROUP_MA_BETON ]
184 motscle2= {'CREA_GROUP_NO': [{'LONGUEUR': LONGUEUR, 'RAYON': RAYON, 'OPTION': 'TUNNEL', 'GROUP_MA': gma, 'GROUP_MA_AXE': __CAB, 'NOM': __NOM2}]}
185 if i.has_key('MAILLE') == 1:
187 echo_mess.append( ' \n' )
188 echo_mess.append( ' # ---------------------------------------------------------------------------\n' )
189 echo_mess.append( ' # DEFI_CABLE_BP - Erreur : MAILLE INTERDIT - UTILISER GROUP_MA \n' )
190 echo_mess.append( ' # ---------------------------------------------------------------------------\n' )
191 message=string.join(echo_mess)
193 if i.has_key('GROUP_NO_ANCRAGE') == 1:
194 __PC1 = i['GROUP_NO_ANCRAGE'][1]
195 motscle2['CREA_GROUP_NO'][0]['GROUP_NO_ORIG'] = __PC1
196 if i.has_key('NOEUD_ANCRAGE') == 1:
197 __PC1 = i['NOEUD_ANCRAGE'][1]
198 motscle2['CREA_GROUP_NO'][0]['NOEUD_ORIG'] = __PC1
200 DEFI_GROUP( reuse=MAILLAGE,
208 # CREATION DES NOUVEAUX FACTEURS DU MOT-CLE "DEFI_CABLE" POUR DEFI_CABLE_BP
210 if dCONE['PRESENT'][0] == 'OUI' and dCONE['PRESENT'][1] == 'OUI':
211 if i.has_key('GROUP_MA') == 1 and i.has_key('GROUP_NO_ANCRAGE') == 1:
212 motscles['DEFI_CABLE'].append( _F(GROUP_MA=i['GROUP_MA'],
213 GROUP_NO_ANCRAGE=i['GROUP_NO_ANCRAGE'],
214 GROUP_NO_FUT=( __NOM1,__NOM2, ), ), )
215 if i.has_key('GROUP_MA') == 1 and i.has_key('NOEUD_ANCRAGE') == 1:
216 motscles['DEFI_CABLE'].append( _F(GROUP_MA=i['GROUP_MA'],
217 NOEUD_ANCRAGE=i['NOEUD_ANCRAGE'],
218 GROUP_NO_FUT=( __NOM1,__NOM2, ), ), )
220 if dCONE['PRESENT'][0] == 'OUI' and dCONE['PRESENT'][1] == 'NON':
221 if i.has_key('GROUP_MA') == 1 and i.has_key('GROUP_NO_ANCRAGE') == 1:
222 motscles['DEFI_CABLE'].append( _F(GROUP_MA=i['GROUP_MA'],
223 GROUP_NO_ANCRAGE=i['GROUP_NO_ANCRAGE'],
224 GROUP_NO_FUT=( __NOM1, ), ), )
225 if i.has_key('GROUP_MA') == 1 and i.has_key('NOEUD_ANCRAGE') == 1:
226 motscles['DEFI_CABLE'].append( _F(GROUP_MA=i['GROUP_MA'],
227 NOEUD_ANCRAGE=i['NOEUD_ANCRAGE'],
228 GROUP_NO_FUT=( __NOM1, ), ), )
230 if dCONE['PRESENT'][0] == 'NON' and dCONE['PRESENT'][1] == 'OUI':
231 if i.has_key('GROUP_MA') == 1 and i.has_key('GROUP_NO_ANCRAGE') == 1:
232 motscles['DEFI_CABLE'].append( _F(GROUP_MA=i['GROUP_MA'],
233 GROUP_NO_ANCRAGE=i['GROUP_NO_ANCRAGE'],
234 GROUP_NO_FUT=( __NOM2, ), ), )
235 if i.has_key('GROUP_MA') == 1 and i.has_key('NOEUD_ANCRAGE') == 1:
236 motscles['DEFI_CABLE'].append( _F(GROUP_MA=i['GROUP_MA'],
237 NOEUD_ANCRAGE=i['NOEUD_ANCRAGE'],
238 GROUP_NO_FUT=( __NOM2, ), ), )
240 if dCONE['PRESENT'][0] == 'NON' and dCONE['PRESENT'][1] == 'NON':
241 if i.has_key('GROUP_MA') == 1 and i.has_key('GROUP_NO_ANCRAGE') == 1:
242 motscles['DEFI_CABLE'].append( _F(GROUP_MA=i['GROUP_MA'],
243 GROUP_NO_ANCRAGE=i['GROUP_NO_ANCRAGE'], ), )
244 if i.has_key('GROUP_MA') == 1 and i.has_key('NOEUD_ANCRAGE') == 1:
245 motscles['DEFI_CABLE'].append( _F(GROUP_MA=i['GROUP_MA'],
246 NOEUD_ANCRAGE=i['NOEUD_ANCRAGE'], ), )
249 # CAS OU L'ON A PAS DEFINI LE MOT-CLE "CONE"
251 if i.has_key('GROUP_MA') == 1 and i.has_key('GROUP_NO_ANCRAGE') == 1:
252 motscles['DEFI_CABLE'].append( _F(GROUP_MA=i['GROUP_MA'],
253 GROUP_NO_ANCRAGE=i['GROUP_NO_ANCRAGE'], ), )
255 if i.has_key('GROUP_MA') == 1 and i.has_key('NOEUD_ANCRAGE') == 1:
256 motscles['DEFI_CABLE'].append( _F(GROUP_MA=i['GROUP_MA'],
257 NOEUD_ANCRAGE=i['NOEUD_ANCRAGE'], ), )
259 if i.has_key('MAILLE') == 1 and i.has_key('GROUP_NO_ANCRAGE') == 1:
260 motscles['DEFI_CABLE'].append( _F(MAILLE=i['MAILLE'],
261 GROUP_NO_ANCRAGE=i['GROUP_NO_ANCRAGE'], ), )
263 if i.has_key('MAILLE') == 1 and i.has_key('NOEUD_ANCRAGE') == 1:
264 motscles['DEFI_CABLE'].append( _F(MAILLE=i['MAILLE'],
265 NOEUD_ANCRAGE=i['NOEUD_ANCRAGE'], ), )
268 # FIN BOUCLE sur i in DEFI_CABLE
271 # LANCEMENT DE DEFI_CABLE_BP
274 dRelaxation=RELAXATION[0].cree_dict_valeurs(RELAXATION[0].mc_liste)
275 for i in dRelaxation.keys():
276 if dRelaxation[i]==None : del dRelaxation[i]
278 __DC=DEFI_CABLE_OP(MODELE=MODELE,
279 CHAM_MATER=CHAM_MATER,
281 GROUP_MA_BETON=GROUP_MA_BETON,
282 TYPE_ANCRAGE=TYPE_ANCRAGE,
283 TENSION_INIT=TENSION_INIT,
284 RECUL_ANCRAGE=RECUL_ANCRAGE,
285 RELAXATION=dRelaxation,
292 __DC=DEFI_CABLE_OP(MODELE=MODELE,
293 CHAM_MATER=CHAM_MATER,
295 GROUP_MA_BETON=GROUP_MA_BETON,
296 TYPE_ANCRAGE=TYPE_ANCRAGE,
297 TENSION_INIT=TENSION_INIT,
298 RECUL_ANCRAGE=RECUL_ANCRAGE,
303 # __TCAB = RECU_TABLE(CO=__DC,NOM_TABLE='CABLE_BP');
304 # IMPR_TABLE(TABLE=__TCAB);