1 #@ MODIF defi_cable_bp_ops Macro DATE 14/09/2004 AUTEUR MCOURTOI M.COURTOIS
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 # -------------------------------------
41 # PRESENT OUI ou NON deux fois
45 # ===========================================================================
49 def defi_cable_bp_ops(self,MAILLAGE,MODELE,CHAM_MATER,CARA_ELEM,GROUP_MA_BETON,
50 DEFI_CABLE,TYPE_ANCRAGE,TENSION_INIT,RECUL_ANCRAGE,
51 RELAXATION,CONE,TITRE,INFO,**args):
54 Ecriture de la macro DEFI_CABLE_BP
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 )
95 # VERIFICATION QUE LE MAILLAGE EST COHERENT AVEC LE MODELE
97 __MAIL = aster.getvectjev( string.ljust(MODELE.nom,8) + '.MODELE .NOMA ' )
98 if string.ljust(MAILLAGE.nom,8) != __MAIL[0] :
99 self.DeclareOut(MAILLAGE.nom,maillage)
101 print ' # ---------------------------------------------------------------------------'
102 print ' # DEFI_CABLE_BP - Erreur : LE CONCEPT MAILLAGE RENSEIGNE NE CORRESPOND'
103 print ' # PAS A CELUI UTILISE DANS LE MODELE !'
104 print ' # ',MAILLAGE.nom,' - ',__MAIL[0]
105 print ' # ---------------------------------------------------------------------------'
108 self.cr.fatal("""<F> <DEFI_CABLE_BP> Erreur dans la macro""")
112 # DEFINITION DU NOM DES GROUP_NO
115 __LGNO = MAILLAGE.LIST_GROUP_NO()
118 __LGN1.append( i[0][:len(__NOM)] )
120 __NB = __LGN1.count(__NOM)
122 # FIN RECUPERATION DES INFOS DONNEES PAR LE MOT-CLE "CONE"
125 # RECUPERATION DES INFOS DONNEES PAR LE MOT-CLE "DEFI_CABLE"
128 for j in DEFI_CABLE :
129 dDEFI_CABLE.append(j.cree_dict_valeurs(j.mc_liste))
130 for i in dDEFI_CABLE[-1].keys():
131 if dDEFI_CABLE[-1][i]==None : del dDEFI_CABLE[-1][i]
134 # BOUCLE SUR LES FACTEURS DU MOT-CLE "DEFI_CABLE"
136 motscles['DEFI_CABLE']=[]
138 for i in dDEFI_CABLE:
140 # CAS OU L'ON A DEFINI LE MOT-CLE "CONE"
143 # CREATION DU PREMIER TUNNEL
145 if dCONE['PRESENT'][0] == 'OUI':
147 __NOM1 = __NOM + str( int(__NB) )
150 motscle2['CREA_GROUP_NO']=[]
152 if i.has_key('GROUP_MA') == 1:
153 __CAB = i['GROUP_MA']
154 motscle2= {'CREA_GROUP_NO': [{'LONGUEUR': LONGUEUR, 'RAYON': RAYON, 'OPTION': 'TUNNEL', 'GROUP_MA': [ GROUP_MA_BETON, __CAB ], 'GROUP_MA_AXE': __CAB, 'NOM': __NOM1}]}
155 if i.has_key('MAILLE') == 1:
157 print ' # ---------------------------------------------------------------------------'
158 print ' # DEFI_CABLE_BP - Erreur : MAILLE INTERDIT - UTILISER GROUP_MA'
159 print ' # ---------------------------------------------------------------------------'
162 self.cr.fatal("""<F> <DEFI_CABLE_BP> Erreur dans la macro""")
164 if i.has_key('GROUP_NO_ANCRAGE') == 1:
165 __PC1 = i['GROUP_NO_ANCRAGE'][0]
166 motscle2['CREA_GROUP_NO'][0]['GROUP_NO_ORIG'] = __PC1
167 if i.has_key('NOEUD_ANCRAGE') == 1:
168 __PC1 = i['NOEUD_ANCRAGE'][0]
169 motscle2['CREA_GROUP_NO'][0]['NOEUD_ORIG'] = __PC1
172 DEFI_GROUP( reuse=MAILLAGE,
179 # CREATION DU DEUXIEME TUNNEL
181 if dCONE['PRESENT'][1] == 'OUI':
183 __NOM2 = __NOM + str( int(__NB) )
186 motscle2['CREA_GROUP_NO']=[]
188 if i.has_key('GROUP_MA') == 1:
189 __CAB = i['GROUP_MA']
190 motscle2= {'CREA_GROUP_NO': [{'LONGUEUR': LONGUEUR, 'RAYON': RAYON, 'OPTION': 'TUNNEL', 'GROUP_MA': [ GROUP_MA_BETON, __CAB ], 'GROUP_MA_AXE': __CAB, 'NOM': __NOM2}]}
191 if i.has_key('MAILLE') == 1:
193 print ' # ---------------------------------------------------------------------------'
194 print ' # DEFI_CABLE_BP - Erreur : MAILLE INTERDIT - UTILISER GROUP_MA'
195 print ' # ---------------------------------------------------------------------------'
198 self.cr.fatal("""<F> <DEFI_CABLE_BP> Erreur dans la macro""")
200 if i.has_key('GROUP_NO_ANCRAGE') == 1:
201 __PC1 = i['GROUP_NO_ANCRAGE'][1]
202 motscle2['CREA_GROUP_NO'][0]['GROUP_NO_ORIG'] = __PC1
203 if i.has_key('NOEUD_ANCRAGE') == 1:
204 __PC1 = i['NOEUD_ANCRAGE'][1]
205 motscle2['CREA_GROUP_NO'][0]['NOEUD_ORIG'] = __PC1
207 DEFI_GROUP( reuse=MAILLAGE,
215 # CREATION DES NOUVEAUX FACTEURS DU MOT-CLE "DEFI_CABLE" POUR DEFI_CABLE_BP
217 if dCONE['PRESENT'][0] == 'OUI' and dCONE['PRESENT'][1] == 'OUI':
218 if i.has_key('GROUP_MA') == 1 and i.has_key('GROUP_NO_ANCRAGE') == 1:
219 motscles['DEFI_CABLE'].append( _F(GROUP_MA=i['GROUP_MA'],
220 GROUP_NO_ANCRAGE=i['GROUP_NO_ANCRAGE'],
221 GROUP_NO_FUT=( __NOM1,__NOM2, ), ), )
222 if i.has_key('GROUP_MA') == 1 and i.has_key('NOEUD_ANCRAGE') == 1:
223 motscles['DEFI_CABLE'].append( _F(GROUP_MA=i['GROUP_MA'],
224 NOEUD_ANCRAGE=i['NOEUD_ANCRAGE'],
225 GROUP_NO_FUT=( __NOM1,__NOM2, ), ), )
227 if dCONE['PRESENT'][0] == 'OUI' and dCONE['PRESENT'][1] == 'NON':
228 if i.has_key('GROUP_MA') == 1 and i.has_key('GROUP_NO_ANCRAGE') == 1:
229 motscles['DEFI_CABLE'].append( _F(GROUP_MA=i['GROUP_MA'],
230 GROUP_NO_ANCRAGE=i['GROUP_NO_ANCRAGE'],
231 GROUP_NO_FUT=( __NOM1, ), ), )
232 if i.has_key('GROUP_MA') == 1 and i.has_key('NOEUD_ANCRAGE') == 1:
233 motscles['DEFI_CABLE'].append( _F(GROUP_MA=i['GROUP_MA'],
234 NOEUD_ANCRAGE=i['NOEUD_ANCRAGE'],
235 GROUP_NO_FUT=( __NOM1, ), ), )
237 if dCONE['PRESENT'][0] == 'NON' and dCONE['PRESENT'][1] == 'OUI':
238 if i.has_key('GROUP_MA') == 1 and i.has_key('GROUP_NO_ANCRAGE') == 1:
239 motscles['DEFI_CABLE'].append( _F(GROUP_MA=i['GROUP_MA'],
240 GROUP_NO_ANCRAGE=i['GROUP_NO_ANCRAGE'],
241 GROUP_NO_FUT=( __NOM2, ), ), )
242 if i.has_key('GROUP_MA') == 1 and i.has_key('NOEUD_ANCRAGE') == 1:
243 motscles['DEFI_CABLE'].append( _F(GROUP_MA=i['GROUP_MA'],
244 NOEUD_ANCRAGE=i['NOEUD_ANCRAGE'],
245 GROUP_NO_FUT=( __NOM2, ), ), )
247 if dCONE['PRESENT'][0] == 'NON' and dCONE['PRESENT'][1] == 'NON':
248 if i.has_key('GROUP_MA') == 1 and i.has_key('GROUP_NO_ANCRAGE') == 1:
249 motscles['DEFI_CABLE'].append( _F(GROUP_MA=i['GROUP_MA'],
250 GROUP_NO_ANCRAGE=i['GROUP_NO_ANCRAGE'], ), )
251 if i.has_key('GROUP_MA') == 1 and i.has_key('NOEUD_ANCRAGE') == 1:
252 motscles['DEFI_CABLE'].append( _F(GROUP_MA=i['GROUP_MA'],
253 NOEUD_ANCRAGE=i['NOEUD_ANCRAGE'], ), )
256 # CAS OU L'ON A PAS DEFINI LE MOT-CLE "CONE"
258 if i.has_key('GROUP_MA') == 1 and i.has_key('GROUP_NO_ANCRAGE') == 1:
259 motscles['DEFI_CABLE'].append( _F(GROUP_MA=i['GROUP_MA'],
260 GROUP_NO_ANCRAGE=i['GROUP_NO_ANCRAGE'], ), )
262 if i.has_key('GROUP_MA') == 1 and i.has_key('NOEUD_ANCRAGE') == 1:
263 motscles['DEFI_CABLE'].append( _F(GROUP_MA=i['GROUP_MA'],
264 NOEUD_ANCRAGE=i['NOEUD_ANCRAGE'], ), )
266 if i.has_key('MAILLE') == 1 and i.has_key('GROUP_NO_ANCRAGE') == 1:
267 motscles['DEFI_CABLE'].append( _F(MAILLE=i['MAILLE'],
268 GROUP_NO_ANCRAGE=i['GROUP_NO_ANCRAGE'], ), )
270 if i.has_key('MAILLE') == 1 and i.has_key('NOEUD_ANCRAGE') == 1:
271 motscles['DEFI_CABLE'].append( _F(MAILLE=i['MAILLE'],
272 NOEUD_ANCRAGE=i['NOEUD_ANCRAGE'], ), )
275 # FIN BOUCLE sur i in DEFI_CABLE
278 # LANCEMENT DE DEFI_CABLE_BP
281 dRelaxation=RELAXATION[0].cree_dict_valeurs(RELAXATION[0].mc_liste)
282 for i in dRelaxation.keys():
283 if dRelaxation[i]==None : del dRelaxation[i]
285 __DC=DEFI_CABLE_OP(MODELE=MODELE,
286 CHAM_MATER=CHAM_MATER,
288 GROUP_MA_BETON=GROUP_MA_BETON,
289 TYPE_ANCRAGE=TYPE_ANCRAGE,
290 TENSION_INIT=TENSION_INIT,
291 RECUL_ANCRAGE=RECUL_ANCRAGE,
292 RELAXATION=dRelaxation,
299 __DC=DEFI_CABLE_OP(MODELE=MODELE,
300 CHAM_MATER=CHAM_MATER,
302 GROUP_MA_BETON=GROUP_MA_BETON,
303 TYPE_ANCRAGE=TYPE_ANCRAGE,
304 TENSION_INIT=TENSION_INIT,
305 RECUL_ANCRAGE=RECUL_ANCRAGE,
310 # __TCAB = RECU_TABLE(CO=__DC,NOM_TABLE='CABLE_BP');
311 # IMPR_TABLE(TABLE=__TCAB);