]> SALOME platform Git repositories - tools/eficas.git/blob - Aster/Cata/cataSTA8/Macro/macro_miss_3d_ops.py
Salome HOME
Modif V6_4_°
[tools/eficas.git] / Aster / Cata / cataSTA8 / Macro / macro_miss_3d_ops.py
1 #@ MODIF macro_miss_3d_ops Macro  DATE 06/06/2007   AUTEUR SALMONA L.SALMONA 
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   tv = aster.__version__.split('.')
48   if len(tv) < 3:
49       tv.extend(['x']*(3-len(tv)))
50   elif len(tv) > 3:
51       tv = tv[:3]
52   vers = '%2s.%2s.%2s' % tuple(tv)
53
54   # if vers > ' 8. 3.11':
55   #    miss3d='/aster/logiciels/MISS3D/NEW/miss3d.csh'
56   # else:
57   #    miss3d=loc_fic+'miss3d'
58      
59   miss3d=loc_fic+'miss3d'
60   
61   # if VERSION=='V1_2':
62   #   if PARAMETRE != None and PARAMETRE['TYPE']=='BINAIRE':
63   #      raise AsException("MACRO_MISS_3D/PARAMETRE : type incompatible avec version")
64         
65   if OPTION['TOUT']!=None:
66       MODUL2='COMPLET'
67   elif OPTION['MODULE']=='MISS_IMPE':
68       MODUL2='CALC_IMPE'
69   elif OPTION['MODULE']=='MISS_EVOL':
70       MODUL2='MISS_PTAS'
71   elif OPTION['MODULE']=='PRE_MISS':
72       MODUL2='GTASTER'
73
74   ETUDE = PROJET
75   BASE  = REPERTOIRE
76   paste = 'fort.'+str(UNITE_IMPR_ASTER)
77   popti = 'fort.'+str(UNITE_OPTI_MISS)
78   pdsol = 'fort.'+str(UNITE_MODELE_SOL)
79   primp = 'fort.'+str(UNITE_RESU_IMPE)
80   prfor = 'fort.'+str(UNITE_RESU_FORC)
81   
82   l_para = ['FREQ_MIN','FREQ_MAX','FREQ_PAS','Z0','RFIC','SURF',
83             'FICH_RESU_IMPE','FICH_RESU_FORC','TYPE','DREF','ALGO',
84             'OFFSET_MAX','OFFSET_NB','SPEC_MAX','SPEC_NB','ISSF',
85             'FICH_POST_TRAI','CONTR_NB','CONTR_LISTE','LFREQ_NB',
86             'LFREQ_LISTE']
87   if PARAMETRE != None and PARAMETRE['LFREQ_NB'] != None:
88     if len(PARAMETRE['LFREQ_LISTE']) != PARAMETRE['LFREQ_NB']:
89       UTMESS('F', 'MACRO_MISS3D', 'Longueur de LFREQ_LISTE incorrecte')
90   if PARAMETRE != None and PARAMETRE['CONTR_NB'] != None:
91     if len(PARAMETRE['CONTR_LISTE']) != 3*PARAMETRE['CONTR_NB']:
92       UTMESS('F', 'MACRO_MISS3D', 'Longueur de CONTR_LISTE incorrecte')
93   
94   dpara = {}
95   for cle in l_para:
96     if cle in ('SURF', 'ISSF', ):
97       dpara[cle] = 'NON'
98     else:
99       dpara[cle] = '0'
100     if PARAMETRE != None and PARAMETRE[cle] != None:
101       if type(PARAMETRE[cle]) in (TupleType, ListType):
102         dpara[cle] = repr(' '.join([str(s) for s in PARAMETRE[cle]]))
103       else:
104         dpara[cle] = str(PARAMETRE[cle])
105   
106   EXEC_LOGICIEL(
107                 LOGICIEL=miss3d,
108                 ARGUMENT=(MODUL2,
109                           ETUDE,
110                           BASE,
111                           paste,
112                           popti,
113                           pdsol,
114                           primp,
115                           VERSION,
116                           dpara['FREQ_MIN'], 
117                           dpara['FREQ_MAX'],
118                           dpara['FREQ_PAS'],
119                           dpara['Z0'], 
120                           dpara['SURF'], 
121                           dpara['RFIC'],
122                           dpara['FICH_RESU_IMPE'],
123                           dpara['FICH_RESU_FORC'],
124                           dpara['DREF'], 
125                           dpara['ALGO'],
126                           dpara['OFFSET_MAX'],
127                           dpara['OFFSET_NB'],
128                           dpara['SPEC_MAX'],
129                           dpara['SPEC_NB'],
130                           dpara['ISSF'],
131                           dpara['FICH_POST_TRAI'],
132                           dpara['CONTR_NB'],
133                           dpara['CONTR_LISTE'],
134                           dpara['LFREQ_NB'],
135                           dpara['LFREQ_LISTE'],
136                           dpara['TYPE'], 
137                           prfor,
138                          ),
139                 )
140
141   return ier