From 516387b0b21ed8c08ec272d27f9a385f6be989c4 Mon Sep 17 00:00:00 2001 From: Pascale Noyret Date: Tue, 5 Jun 2007 09:57:17 +0000 Subject: [PATCH] PN version NEW8 du 5/juin --- .../cataSTA8/Macro/creation_donnees_homard.py | 18 ++- .../Cata/cataSTA8/Macro/defi_cable_bp_ops.py | 27 ++--- .../Cata/cataSTA8/Macro/macr_adap_mail_ops.py | 39 +++--- .../cataSTA8/Macro/macr_lign_coupe_ops.py | 114 ++++++++++++------ 4 files changed, 119 insertions(+), 79 deletions(-) diff --git a/Aster/Cata/cataSTA8/Macro/creation_donnees_homard.py b/Aster/Cata/cataSTA8/Macro/creation_donnees_homard.py index ed50681b..55cffc89 100644 --- a/Aster/Cata/cataSTA8/Macro/creation_donnees_homard.py +++ b/Aster/Cata/cataSTA8/Macro/creation_donnees_homard.py @@ -1,4 +1,4 @@ -#@ MODIF creation_donnees_homard Macro DATE 30/10/2006 AUTEUR DURAND C.DURAND +#@ MODIF creation_donnees_homard Macro DATE 04/04/2007 AUTEUR VIVAN L.VIVAN # -*- coding: iso-8859-1 -*- # CONFIGURATION MANAGEMENT OF EDF VERSION # ====================================================================== @@ -17,15 +17,17 @@ # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, # 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. # ====================================================================== -# RESPONSABLE MCOURTOI M.COURTOIS +# RESPONSABLE VIVAN L.VIVAN """ Cette classe crée le fichier de configuration permettant de lancer HOMARD depuis Code_Aster. """ -__revision__ = "V1.1" +__revision__ = "V1.2" __all__ = [ ] import os import os.path +from types import ListType, TupleType +EnumTypes = (ListType, TupleType) try: from Utilitai.Utmess import UTMESS @@ -183,6 +185,7 @@ class creation_donnees_homard: self.fic_homard_niterp1 = "M_" + self.str_niterp1 + ".hom" else : self.fic_homard_niter = None + self.fic_homard_niterp1 = None # # 6.1. Le pilotage de l'adaptation # @@ -284,7 +287,7 @@ class creation_donnees_homard: if message_erreur is not None : UTMESS("F", self.nom_macro, message_erreur) # - return self.fic_homard_niter + return self.fic_homard_niter, self.fic_homard_niterp1 # ------------------------------------------------------------------------------ def ouvre_fichier (self, nomfic_local) : """Ouvre en écriture un fichier après l'avoir éventuellement détruit @@ -467,8 +470,11 @@ class creation_donnees_homard: self.ecrire_ligne_configuration_2("CCNoMFro", self.dico_configuration["NOM_MED_MAILLAGE_FRONTIERE"]) if self.mots_cles.has_key("GROUP_MA") : if self.mots_cles["GROUP_MA"] is not None : - for group_ma in self.mots_cles["GROUP_MA"] : - self.ecrire_ligne_configuration_2("CCGroFro", group_ma) + if not type(self.mots_cles["GROUP_MA"]) in EnumTypes : + self.ecrire_ligne_configuration_2("CCGroFro", self.mots_cles["GROUP_MA"]) + else : + for group_ma in self.mots_cles["GROUP_MA"] : + self.ecrire_ligne_configuration_2("CCGroFro", group_ma) # # 8. L'éventuel maillage annexe # diff --git a/Aster/Cata/cataSTA8/Macro/defi_cable_bp_ops.py b/Aster/Cata/cataSTA8/Macro/defi_cable_bp_ops.py index 5d77d5a3..ea466d5a 100644 --- a/Aster/Cata/cataSTA8/Macro/defi_cable_bp_ops.py +++ b/Aster/Cata/cataSTA8/Macro/defi_cable_bp_ops.py @@ -1,4 +1,4 @@ -#@ MODIF defi_cable_bp_ops Macro DATE 14/11/2006 AUTEUR ASSIRE A.ASSIRE +#@ MODIF defi_cable_bp_ops Macro DATE 04/04/2007 AUTEUR VIVAN L.VIVAN # -*- coding: iso-8859-1 -*- # CONFIGURATION MANAGEMENT OF EDF VERSION # ====================================================================== @@ -24,7 +24,6 @@ # ------------------------------------- # USAGE : # Entrée : -# - MAILLAGE # - MODELE # - CABLE # - CHAM_MATER @@ -46,7 +45,7 @@ -def defi_cable_bp_ops(self,MAILLAGE,MODELE,CHAM_MATER,CARA_ELEM,GROUP_MA_BETON, +def defi_cable_bp_ops(self,MODELE,CHAM_MATER,CARA_ELEM,GROUP_MA_BETON, DEFI_CABLE,TYPE_ANCRAGE,TENSION_INIT,RECUL_ANCRAGE, RELAXATION,CONE,TITRE,INFO,**args): @@ -92,25 +91,13 @@ def defi_cable_bp_ops(self,MAILLAGE,MODELE,CHAM_MATER,CARA_ELEM,GROUP_MA_BETON, motscles['CONE']=[] motscles['CONE'].append( dCONE ) - - # VERIFICATION QUE LE MAILLAGE EST COHERENT AVEC LE MODELE - + # RECUPERATION DU MAILLAGE A PARTIR DU MODELE __MAIL = aster.getvectjev( string.ljust(MODELE.nom,8) + '.MODELE .NOMA ' ) - if string.ljust(MAILLAGE.nom,8) != __MAIL[0] : - echo_mess=[] - echo_mess.append( ' \n' ) - echo_mess.append( ' # ---------------------------------------------------------------------------\n' ) - echo_mess.append( ' # DEFI_CABLE_BP - Erreur : LE CONCEPT MAILLAGE RENSEIGNE NE CORRESPOND \n' ) - echo_mess.append( ' # PAS A CELUI UTILISE DANS LE MODELE ! \n' ) - echo_mess.append( ' # '+MAILLAGE.nom+' - '+__MAIL[0]+'\n' ) - echo_mess.append( ' # ---------------------------------------------------------------------------\n' ) - message=string.join(echo_mess) - UTMESS('F',message) - - - # DEFINITION DU NOM DES GROUP_NO + __MAIL= __MAIL[0].strip() + MAILLAGE = self.get_sd_avant_etape(__MAIL,self) - __NOM = '_AN_' + # DEFINITION DU NOM DES GROUP_NO + __NOM = 'AN__' __LGNO = MAILLAGE.LIST_GROUP_NO() __LGN1 = [] for i in __LGNO : diff --git a/Aster/Cata/cataSTA8/Macro/macr_adap_mail_ops.py b/Aster/Cata/cataSTA8/Macro/macr_adap_mail_ops.py index 32a58b2e..feb09b5e 100644 --- a/Aster/Cata/cataSTA8/Macro/macr_adap_mail_ops.py +++ b/Aster/Cata/cataSTA8/Macro/macr_adap_mail_ops.py @@ -1,4 +1,4 @@ -#@ MODIF macr_adap_mail_ops Macro DATE 30/10/2006 AUTEUR DURAND C.DURAND +#@ MODIF macr_adap_mail_ops Macro DATE 04/04/2007 AUTEUR VIVAN L.VIVAN # -*- coding: iso-8859-1 -*- # CONFIGURATION MANAGEMENT OF EDF VERSION # ====================================================================== @@ -692,7 +692,7 @@ def macr_adap_mail_ops ( self, donnees_homard = creation_donnees_homard.creation_donnees_homard ( self.nom, args, dico_configuration ) if ( INFO > 1 ) : donnees_homard.quel_mode ( ) - fic_homard_niter = donnees_homard.creation_configuration ( ) + fic_homard_niter, fic_homard_niterp1 = donnees_homard.creation_configuration ( ) donnees_homard.ecrire_fichier_configuration ( ) if ( mode_homard == "INFO" ) : Nom_Fichier_Donnees = donnees_homard.ecrire_fichier_donnees ( ) @@ -805,29 +805,38 @@ def macr_adap_mail_ops ( self, INFO = INFO, **motscsi ) # #==================================================================== -# 8. Menage des fichiers MED et HOMARD devenus inutiles +# 8. Menage des fichiers devenus inutiles +# On doit imperativement garder le dernier fichier homard produit +# En mode d'information, on garde également les fichiers textes #==================================================================== # - liste_aux = [ fichier_aster_vers_homard ] + liste_aux = [fichier_aster_vers_homard] + liste_aux_bis = os.listdir(Rep_Calc_HOMARD_global) + for fic in liste_aux_bis : + fic_total = os.path.join(Rep_Calc_HOMARD_global, fic) + liste_aux.append(fic_total) + liste_aux_bis = [] if ( mode_homard == "ADAP" ) : liste_aux.append(fichier_homard_vers_aster) - fic = os.path.join(Rep_Calc_HOMARD_global, fic_homard_niter) - liste_aux.append(fic) -#gn print "liste_aux = ",liste_aux + fic = os.path.join(Rep_Calc_HOMARD_global, fic_homard_niterp1) + liste_aux_bis.append(fic) # for fic in liste_aux : - if ( INFO > 1 ) : - print "Destruction du fichier ", fic - if os.path.isfile(fic) : - try : - os.remove(fic) - except os.error,codret_partiel : - self.cr.warn("Code d'erreur de remove : " + str(codret_partiel[0]) + " : " + codret_partiel[1]) - UTMESS("F", self.nom, "Impossible de détruire le fichier : "+fic) + if fic not in liste_aux_bis : + if ( INFO > 1 ) : + print "Destruction du fichier ", fic + if os.path.isfile(fic) : + try : + os.remove(fic) + except os.error,codret_partiel : + self.cr.warn("Code d'erreur de remove : " + str(codret_partiel[0]) + " : " + codret_partiel[1]) + UTMESS("F", self.nom, "Impossible de détruire le fichier : "+fic) #gn print "Répertoire ",Rep_Calc_HOMARD_global #gn os.system("ls -la "+Rep_Calc_HOMARD_global) #gn print "Répertoire ",Rep_Calc_ASTER #gn os.system("ls -la "+Rep_Calc_ASTER) +#gn print os.listdir(Rep_Calc_HOMARD_global) +#gn print "glop :", Rep_Calc_HOMARD_global # #==================================================================== # C'est fini ! diff --git a/Aster/Cata/cataSTA8/Macro/macr_lign_coupe_ops.py b/Aster/Cata/cataSTA8/Macro/macr_lign_coupe_ops.py index 639b6685..c9b31703 100644 --- a/Aster/Cata/cataSTA8/Macro/macr_lign_coupe_ops.py +++ b/Aster/Cata/cataSTA8/Macro/macr_lign_coupe_ops.py @@ -1,4 +1,4 @@ -#@ MODIF macr_lign_coupe_ops Macro DATE 27/06/2006 AUTEUR THOMASSO D.THOMASSON +#@ MODIF macr_lign_coupe_ops Macro DATE 09/05/2007 AUTEUR SALMONA L.SALMONA # -*- coding: iso-8859-1 -*- # CONFIGURATION MANAGEMENT OF EDF VERSION # ====================================================================== @@ -231,9 +231,22 @@ def macr_lign_coupe_ops(self,RESULTAT,UNITE_MAILLAGE,LIGN_COUPE,NOM_CHAM, # Expression des contraintes aux noeuds ou des déplacements dans le repere local __remodr=__recou + icham=0 + ioc2=0 + mcACTION=[] if AsType(RESULTAT).__name__ in ('evol_elas','evol_noli') : - for m in LIGN_COUPE : + if NOM_CHAM in ('DEPL','SIEF_ELNO_ELGA','SIGM_NOEU_DEPL','SIGM_NOEU_SIEF','SIGM_NOEU_ELGA','SIGM_NOEU_COQU'):icham=1 + # Gestion du calcul en repère local - VECT_Y + rep_local=0 + if m['NB_POINTS'] !=None : if m['VECT_Y'] !=None : + if icham: rep_local=1 + else : + UTMESS('A','MACR_LIGN_COUPE','LE CHAMP '+NOM_CHAM+' N EST PAS TRAITE PAR MACR_LIGNE_COUPE EN REPERE LOCAL.' + +'LE CALCUL EST EFFECTUE EN REPERE GLOBAL.') + + for m in LIGN_COUPE : + if rep_local: epsi=0.00000001 # --- determination des angles nautiques cx1=m['COOR_EXTR'][0]-m['COOR_ORIG'][0] @@ -299,7 +312,6 @@ def macr_lign_coupe_ops(self,RESULTAT,UNITE_MAILLAGE,LIGN_COUPE,NOM_CHAM, alpha=alpha*180/math.pi beta=beta*180/math.pi gamma=gamma*180/math.pi - # --- MODI_REPERE motscles={} motscles['MODI_CHAM']=[] @@ -313,7 +325,7 @@ def macr_lign_coupe_ops(self,RESULTAT,UNITE_MAILLAGE,LIGN_COUPE,NOM_CHAM, LCMP=['DX','DY','DZ'] TYPE_CHAM='VECT_3D' motscles['MODI_CHAM'].append(_F(NOM_CHAM=NOM_CHAM,NOM_CMP=LCMP,TYPE_CHAM=TYPE_CHAM),) - elif NOM_CHAM in ('SIGM_NOEU_DEPL','SIGM_NOEU_SIEF','SIGM_NOEU_ELGA','SIGM_NOEU_COQU'): + elif NOM_CHAM in ('SIGM_NOEU_DEPL','SIEF_ELNO_ELGA','SIGM_NOEU_SIEF','SIGM_NOEU_ELGA','SIGM_NOEU_COQU'): if dime == 2: LCMP=['SIXX','SIYY','SIZZ','SIXY'] TYPE_CHAM='TENS_2D' @@ -321,6 +333,7 @@ def macr_lign_coupe_ops(self,RESULTAT,UNITE_MAILLAGE,LIGN_COUPE,NOM_CHAM, LCMP=['SIXX','SIYY','SIZZ','SIXY','SIXZ','SIYZ'] TYPE_CHAM='TENS_3D' motscles['MODI_CHAM'].append(_F(NOM_CHAM=NOM_CHAM,NOM_CMP=LCMP,TYPE_CHAM=TYPE_CHAM),) + # DEFI_REPERE ANGL_NAUT=[] ANGL_NAUT.append(alpha) @@ -330,29 +343,62 @@ def macr_lign_coupe_ops(self,RESULTAT,UNITE_MAILLAGE,LIGN_COUPE,NOM_CHAM, motscles['DEFI_REPERE'].append(_F(REPERE='UTILISATEUR',ANGL_NAUT=ANGL_NAUT),) __remodr=MODI_REPERE(RESULTAT=__recou,**motscles) + if m['NB_POINTS'] !=None : + ioc2=ioc2+1 + groupe='LICOU'+str(ioc2) + if m['INTITULE'] !=None : intitl=m['INTITULE'] + else : intitl='l.coupe'+str(ioc2) + elif m['GROUP_NO']!=None : + groupe=m['GROUP_NO'].ljust(8).upper() + if m['INTITULE'] !=None : intitl=m['INTITULE'] + else : intitl=groupe + mcACTION.append( _F(INTITULE = intitl, + RESULTAT = __remodr, + GROUP_NO = groupe, + NOM_CHAM = NOM_CHAM, + TOUT_CMP = 'OUI', + OPERATION = 'EXTRACTION', ) ) + + else: # Production d'une table pour toutes les lignes de coupe - - ioc2=0 - mcACTION=[] - for m in LIGN_COUPE : - if m['NB_POINTS'] !=None : - ioc2=ioc2+1 - groupe='LICOU'+str(ioc2) - if m['INTITULE'] !=None : intitl=m['INTITULE'] - else : intitl='l.coupe'+str(ioc2) - elif m['GROUP_NO']!=None : - groupe=m['GROUP_NO'].ljust(8).upper() - if m['INTITULE'] !=None : intitl=m['INTITULE'] - else : intitl=groupe - mcACTION.append( _F(INTITULE = intitl, - RESULTAT = __remodr, - GROUP_NO = groupe, - NOM_CHAM = NOM_CHAM, - TOUT_CMP = 'OUI', - OPERATION = 'EXTRACTION', ) ) - + for m in LIGN_COUPE : + if m['NB_POINTS'] !=None : + ioc2=ioc2+1 + groupe='LICOU'+str(ioc2) + if m['INTITULE'] !=None : intitl=m['INTITULE'] + else : intitl='l.coupe'+str(ioc2) + elif m['GROUP_NO']!=None : + groupe=m['GROUP_NO'].ljust(8).upper() + if m['INTITULE'] !=None : intitl=m['INTITULE'] + else : intitl=groupe + mcACTION.append( _F(INTITULE = intitl, + RESULTAT = __recou, + GROUP_NO = groupe, + NOM_CHAM = NOM_CHAM, + TOUT_CMP = 'OUI', + OPERATION = 'EXTRACTION', ) ) + + elif AsType(RESULTAT).__name__ in ('evol_ther',) : + for m in LIGN_COUPE : + if m['NB_POINTS'] !=None : + ioc2=ioc2+1 + groupe='LICOU'+str(ioc2) + if m['INTITULE'] !=None : intitl=m['INTITULE'] + else : intitl='l.coupe'+str(ioc2) + elif m['GROUP_NO']!=None : + groupe=m['GROUP_NO'].ljust(8).upper() + if m['INTITULE'] !=None : intitl=m['INTITULE'] + else : intitl=groupe + mcACTION.append( _F(INTITULE = intitl, + RESULTAT = __recou, + GROUP_NO = groupe, + NOM_CHAM = NOM_CHAM, + TOUT_CMP = 'OUI', + OPERATION = 'EXTRACTION', ) ) + + __tabitm=POST_RELEVE_T(ACTION=mcACTION,); # on repasse par les tables python pour supprimer les paramètres inutiles @@ -360,19 +406,11 @@ def macr_lign_coupe_ops(self,RESULTAT,UNITE_MAILLAGE,LIGN_COUPE,NOM_CHAM, self.DeclareOut('nomres',self.sd) dictab=__tabitm.EXTR_TABLE() - listpara=dictab.para - listpara.remove('NOEUD') - listpara.remove('RESU') - - coltab=[] - for key in listpara : - val=dictab[key].values()[key] - if type(val[0])==types.IntType : - coltab.append(_F(PARA=key,LISTE_I=val)) - elif type(val[0])==types.FloatType : - coltab.append(_F(PARA=key,LISTE_R=val)) - elif type(val[0])==types.StringType : - coltab.append(_F(PARA=key,LISTE_K=val,TYPE_K='K16')) - nomres=CREA_TABLE(LISTE=coltab) + + del dictab['NOEUD'] + del dictab['RESU'] + dprod = dictab.dict_CREA_TABLE() + + nomres=CREA_TABLE(**dprod) return ier -- 2.39.2