]> SALOME platform Git repositories - tools/eficas.git/blob - Aster/Cata/cataSTA8/Macro/macro_miss_3d_ops.py
Salome HOME
merge de la branche BR_dev_mars_06 (tag V1_10b5) dans la branche principale
[tools/eficas.git] / Aster / Cata / cataSTA8 / Macro / macro_miss_3d_ops.py
1 #@ MODIF macro_miss_3d_ops Macro  DATE 20/03/2006   AUTEUR ACBHHCD G.DEVESA 
2 # -*- coding: iso-8859-1 -*-
3 #            CONFIGURATION MANAGEMENT OF EDF VERSION
4 # ======================================================================
5 # COPYRIGHT (C) 1991 - 2002  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.                                                  
10 #                                                                       
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.                              
15 #                                                                       
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
21
22
23 def macro_miss_3d_ops(self,UNITE_IMPR_ASTER,UNITE_OPTI_MISS,
24                            UNITE_MODELE_SOL,UNITE_RESU_IMPE,
25                            PROJET,REPERTOIRE,OPTION,VERSION,
26                            UNITE_RESU_FORC,PARAMETRE,**args):
27   """
28      Ecriture de la macro MACRO_MISS_3D
29   """
30   import types
31   from Accas import _F
32   from Utilitai.Utmess import UTMESS
33   from types import TupleType, ListType
34
35   ier=0
36   # On importe les definitions des commandes a utiliser dans la macro
37   # Le nom de la variable doit etre obligatoirement le nom de la commande
38   DEFI_FICHIER  =self.get_cmd('DEFI_FICHIER')
39   EXEC_LOGICIEL =self.get_cmd('EXEC_LOGICIEL')
40   # La macro compte pour 1 dans la numerotation des commandes
41   self.set_icmd(1)
42
43   DEFI_FICHIER(ACTION='LIBERER',UNITE=UNITE_IMPR_ASTER)
44
45   import aster 
46   loc_fic=aster.repout()
47   miss3d=loc_fic+'miss3d'
48   #miss3d='/home/acbhhcd/MISS3D/V6.4/miss3d.csh'
49
50   if OPTION['TOUT']!=None:
51       MODUL2='COMPLET'
52   elif OPTION['MODULE']=='MISS_IMPE':
53       MODUL2='CALC_IMPE'
54   elif OPTION['MODULE']=='MISS_EVOL':
55       MODUL2='MISS_PTAS'
56   elif OPTION['MODULE']=='PRE_MISS':
57       MODUL2='GTASTER'
58
59   ETUDE = PROJET
60   BASE  = REPERTOIRE
61   paste = 'fort.'+str(UNITE_IMPR_ASTER)
62   popti = 'fort.'+str(UNITE_OPTI_MISS)
63   pdsol = 'fort.'+str(UNITE_MODELE_SOL)
64   primp = 'fort.'+str(UNITE_RESU_IMPE)
65   prfor = 'fort.'+str(UNITE_RESU_FORC)
66   
67   l_para = ['FREQ_MIN','FREQ_MAX','FREQ_PAS','Z0','RFIC','SURF',
68             'FICH_RESU_IMPE','FICH_RESU_FORC','DREF','ALGO',
69             'OFFSET_MAX','OFFSET_NB','SPEC_MAX','SPEC_NB','ISSF',
70             'FICH_POST_TRAI','CONTR_NB','CONTR_LISTE','LFREQ_NB',
71             'LFREQ_LISTE']
72   if PARAMETRE != None and PARAMETRE['LFREQ_NB'] != None:
73     if len(PARAMETRE['LFREQ_LISTE']) != PARAMETRE['LFREQ_NB']:
74       UTMESS('F', 'MACRO_MISS3D', 'Longueur de LFREQ_LISTE incorrecte')
75   if PARAMETRE != None and PARAMETRE['CONTR_NB'] != None:
76     if len(PARAMETRE['CONTR_LISTE']) != 3*PARAMETRE['CONTR_NB']:
77       UTMESS('F', 'MACRO_MISS3D', 'Longueur de CONTR_LISTE incorrecte')
78   
79   dpara = {}
80   for cle in l_para:
81     if cle in ('SURF', 'ISSF'):
82       dpara[cle] = 'NON'
83     else:
84       dpara[cle] = '0'
85     if PARAMETRE != None and PARAMETRE[cle] != None:
86       if type(PARAMETRE[cle]) in (TupleType, ListType):
87         dpara[cle] = ' '.join([str(s) for s in PARAMETRE[cle]])
88       else:
89         dpara[cle] = str(PARAMETRE[cle])
90   
91   EXEC_LOGICIEL(
92                 LOGICIEL=miss3d,
93                 ARGUMENT=(_F(NOM_PARA=MODUL2),
94                           _F(NOM_PARA=ETUDE),
95                           _F(NOM_PARA=BASE),
96                           _F(NOM_PARA=paste),
97                           _F(NOM_PARA=popti),
98                           _F(NOM_PARA=pdsol),
99                           _F(NOM_PARA=primp),
100                           _F(NOM_PARA=VERSION),
101                           _F(NOM_PARA=dpara['FREQ_MIN']), 
102                           _F(NOM_PARA=dpara['FREQ_MAX']),
103                           _F(NOM_PARA=dpara['FREQ_PAS']),
104                           _F(NOM_PARA=dpara['Z0']), 
105                           _F(NOM_PARA=dpara['SURF']), 
106                           _F(NOM_PARA=dpara['RFIC']),
107                           _F(NOM_PARA=dpara['FICH_RESU_IMPE']),
108                           _F(NOM_PARA=dpara['FICH_RESU_FORC']),
109                           _F(NOM_PARA=dpara['DREF']), 
110                           _F(NOM_PARA=dpara['ALGO']),
111                           _F(NOM_PARA=dpara['OFFSET_MAX']),
112                           _F(NOM_PARA=dpara['OFFSET_NB']),
113                           _F(NOM_PARA=dpara['SPEC_MAX']),
114                           _F(NOM_PARA=dpara['SPEC_NB']),
115                           _F(NOM_PARA=dpara['ISSF']),
116                           _F(NOM_PARA=dpara['FICH_POST_TRAI']),
117                           _F(NOM_PARA=dpara['CONTR_NB']),
118                           _F(NOM_PARA=dpara['CONTR_LISTE']),
119                           _F(NOM_PARA=dpara['LFREQ_NB']),
120                           _F(NOM_PARA=dpara['LFREQ_LISTE']),
121                           _F(NOM_PARA=prfor),
122                          ),
123                 )
124
125   return ier