]> SALOME platform Git repositories - modules/eficas.git/commitdiff
Salome HOME
PN ajout du choix du schema
authorPascale Noyret <pascale.noyret@edf.fr>
Wed, 26 May 2010 09:41:10 +0000 (09:41 +0000)
committerPascale Noyret <pascale.noyret@edf.fr>
Wed, 26 May 2010 09:41:10 +0000 (09:41 +0000)
InterfaceQT4/qtEficas.py
Map/qtEficas_map.py
generator/generator_map.py
generator/generator_s_poly_st_1.py [new file with mode: 0644]

index 0399ce189a51fcaa7957a5ae18b3dfe8018fc5b6..849abee94dd1ac1bfe26720f07c46d27afde635f 100644 (file)
@@ -24,7 +24,6 @@ class Appli(Ui_Eficas,QMainWindow):
         self.code=code
         self.ssCode=ssCode
         self.salome=salome
-        self.format_fichier="python"   #par defaut
        self.top = self #(pour CONFIGURATION)
         self.QWParent=None #(Pour lancement sans IHM)
         self.indice=0
@@ -37,6 +36,11 @@ class Appli(Ui_Eficas,QMainWindow):
         self.REPINI=prefsCode.REPINI
         self.RepIcon=prefsCode.INSTALLDIR+"/Editeur/icons"
         self.INSTALLDIR=prefsCode.INSTALLDIR
+        if ssCode != None :
+           self.format_fichier= ssCode #par defaut
+           prefsCode.NAME_SCHEME=ssCode
+        else :
+           self.format_fichier="python"        #par defaut
 
         if salome :
            import sys
index a50af89457b212707830309372059d6c8e5603a6..e33a9ee586726330b92f215e3a3517d07c289c26 100755 (executable)
@@ -55,5 +55,5 @@ res=app.exec_()
 
 #permet de choisir le module
 print MonChoixCata.nom
-eficas_go.lance_eficas(code=prefs.code)
+eficas_go.lance_eficas(code=prefs.code,ssCode=MonChoixCata.nom)
 #eficas_go.lance_eficas(code=prefs.code,choix="non")
index 9d7501f9c27e12b9ab9cdafb2090fe63ae4b548c..854bc374750bd6e30fbc954ec17046c1e1c433cf 100644 (file)
@@ -28,39 +28,6 @@ import types,string,re,os
 
 from generator_python import PythonGenerator
 
-#____________________________________________________________________________________
-# PYGMEEDict contient une equivalence entre le catalogue Map et les lignes generees
-# comme entete (commentaire ?) dans le fichier d'input de pygmee
-#
-
-CONFIGliste=('NAME_SCHEME', 'PATH_ASTER', 'PATH_BENHUR', 'PATH_MODULE', 'PATH_PYGMEE', 'PATH_STUDY', 'repIni')
-PYGMEEDict={
-       "_PYGMEE_FUSEAU1_b_forme_FICHIER"  : "#fuseau 1 (entree de lecfus) format : diametre DCE croissant / fraction cumulee decroisant ",
-       "FUSEAU2" :  "#fuseau 2 (entree de lecfus) format : diametre DCE croissant / fraction cumulee decroisant",
-       "_PYGMEE_TAILLE" : "# taille du VER en microns ",
-       "_PYGMEE_DISTANCE" : "# distance de repulsion :",
-           }
-
-#_______________________________________________________________________________________________________
-# listeOrdonneeMCPygmee contient une liste (donc ordonnee) des mots clefs pour 
-# imposer l'ordre des  lignes generees
-listeOrdonneeMCPygmee =('_PYGMEE_FUSEAU1_b_forme_FICHIER', 'FUSEAU2', '_PYGMEE_TAILLE','_PYGMEE_DISTANCE')
-
-
-BENHURDict={
-       "_BENHUR_FINESSE" : "discretisation des arretes du VER ",
-           }
-
-
-ASTERDict={
-       "_ASTER_LANCEMENT" : "execution de Code_Aster",
-       "_ASTER_CONDUCTIVITE_I" : "conductivite des inclusions",
-       "_ASTER_CONDUCTIVITE_M" : "conductivite de la matrice",
-           }
-
-GMSHDict={
-       "_GMSH_LANCEMENT" : "execution de GMSH",
-           }
 
 def entryPoint():
    """
@@ -84,9 +51,10 @@ class MapGenerator(PythonGenerator):
 
    """
    # Les extensions de fichier permis?
-   extensions=('.comm',)
+   extensions=('.map',)
 
    def gener(self,obj,format='brut',config=None):
+      print 'generation dans generator_map'
       self.config=config
       self.dictMCVal={}
       self.listeTemp=[]
@@ -94,16 +62,19 @@ class MapGenerator(PythonGenerator):
       self.generePythonMap()
       return self.text
 
-   def generRUN(self,obj,format='brut',config=None):
+   def generRUN(self,obj,format='brut',config=None,):
+      print 'generRUN dans generator_map'
       self.config=config
       self.dictMCVal={}
       self.listeTemp=[]
       self.text=PythonGenerator.gener(self,obj,format)
-      #self.generePythonMap()
       dicoRun={}
       for code in self.dictMCVal.keys():
-          listeTexte=apply(MapGenerator.__dict__[code],(self,))
-          dicoRun[code]=listeTexte
+          if code in self.__class__.__dict__.keys():
+             listeTexte=apply(self.__class__.__dict__[code],(self,))
+             dicoRun[code]=listeTexte
+          else :
+             dicoRun[code]=""
       return dicoRun
 
 
@@ -115,7 +86,8 @@ class MapGenerator(PythonGenerator):
 
       '''
       for code in self.dictMCVal.keys():
-          self.texte=apply(MapGenerator.__dict__[code],(self,))
+          if code in self.__class__.__dict__.keys():
+             self.texte=apply(self.__class__.__dict__[code],(self,))
 
    def generPROC_ETAPE(self,obj):
       #print "PN: generPROC_ETAPE dans generatorMap"
@@ -139,75 +111,9 @@ class MapGenerator(PythonGenerator):
       self.DictTemp[clef]=obj.valeur
       return s
 
-   def PYGMEE(self) :
-       print "Generation de PYGMEE"
-       dicoPygmee=self.dictMCVal["PYGMEE"]
-
-       monFichier=self.config.PATH_PYGMEE+"/pygmee_input.txt"
-
-       #Lecture du fichier a trous
-       f = file(self.config.repIni+"/pygmee_input.txt","r")
-       chaine = f.read()  
-       f.close()   
-       chaine2=self.remplaceCONFIG(chaine)
-       chaine=self.remplaceDICO(chaine2,dicoPygmee)
-\r
-       if  os.path.isfile(monFichier) :\r
-           #print "je detruis pygmee_input.txt"\r
-           commande="rm -rf " + monFichier\r
-           os.system (commande)\r
-       f=open(monFichier,'wb')\r
-       f.write(chaine)\r
-       f.close()\r
-       if ('_PYGMEE_LANCEMENT' in dicoPygmee.keys()) and  dicoPygmee['_PYGMEE_LANCEMENT'] == 'oui':\r
-           commande="cd "+self.config.PATH_PYGMEE+";"\r
-           commande=commande + "python "+self.config.PATH_PYGMEE+"/pygmee_v1.py"\r
-           #print commande\r
-           os.system(commande)\r
-       else:\r
-          return ""
 
-   def BENHUR(self) :
-       print "Generation de BENHUR"
-       dicoBenhur=self.dictMCVal["BENHUR"]
-       if ("PYGMEE" in self.dictMCVal.keys()) and '_PYGMEE_TAILLE' in self.dictMCVal['PYGMEE']:
-           dicoBenhur["_PYGMEE_TAILLE"]=self.dictMCVal["PYGMEE"]['_PYGMEE_TAILLE']
-       else :
-           dicoBenhur["_PYGMEE_TAILLE"]=0
-           print "Attention la variable Taille_VER non definie"
-       
-       finesse=str(dicoBenhur["_BENHUR_FINESSE"])
-       nom_fichier_BHR=self.config.PATH_STUDY+"/"+self.config.NAME_SCHEME+"_benhur_"+finesse+".bhr"\r
-       nom_BHR_Files=self.config.PATH_BENHUR+"/BHR_files.txt"
-
-       #Lecture du fichier a trous
-       f = file(self.config.repIni+"/benhur_pygmee.txt","r")
-       chaine = f.read()  
-       f.close()   
-       chaine2=self.remplaceCONFIG(chaine)
-       print "chaine2 =", chaine2
-       chaine=self.remplaceDICO(chaine2,dicoBenhur)
-       print "chaine =", chaine
-
-       f=open(nom_fichier_BHR,'wb')
-       f.write(chaine)
-       f.close()
-
-       f=open(nom_BHR_Files,'wb')
-       f.write(nom_fichier_BHR)
-       f.write("\n\n\n")
-       f.close()
-
-       if ('_BENHUR_LANCEMENT' in dicoBenhur.keys()) and  dicoBenhur['_BENHUR_LANCEMENT'] == 'oui':
-           commande="cd "+self.config.PATH_BENHUR+";"
-           commande=commande + "./benhur"
-           print commande
-           os.system(commande)
-       else:
-          return ""
-
-   def  remplaceCONFIG(self,chaine) :
-       for mot in CONFIGliste :
+   def  remplaceCONFIG(self,chaine,liste) :
+       for mot in liste :
            rplact="%_"+mot+"%"
            result=chaine.replace(rplact,self.config.__dict__[mot])
            chaine=result
@@ -217,59 +123,5 @@ class MapGenerator(PythonGenerator):
        for mot in dico.keys() :
            rplact="%"+mot+"%"
            result=chaine.replace(rplact,str(dico[mot]))
-           print rplact 
-           print str(dico[mot])
            chaine=result
        return chaine
-
-
-   def ASTER(self) :
-      print "Generation de ASTER"
-      dicoAster=self.dictMCVal["ASTER"]
-      dicoPygmee=self.dictMCVal["PYGMEE"]
-      nom_racine=self.config.PATH_MODULE+"/"+self.config.NAME_SCHEME+"/"+self.config.NAME_SCHEME
-      nom_fichier_ASTER=nom_racine+"_aster.comm"
-#      nom_mat=nom_racine+"_aster.mat"
-#      lambda_matrice=self.dictMCVal["ASTER"]['_ASTER_CONDUCTIVITE_M']
-#      lambda_inclusions=self.dictMCVal["ASTER"]['_ASTER_CONDUCTIVITE_I']
-#      contraste=lambda_inclusions/lambda_matrice
-#      f=open(nom_mat,'wb')
-#      for i in range(11):
-#         fraction=(1.0*i/10)
-#         lambda_local=1.0+fraction
-#         f.write(str(lambda_local))
-#         f.write("\n")
-#      f.close()
-
-       #Lecture du fichier a trous
-      f = file(self.config.repIni+"/s_poly_st_1_aster_template.comm","r")
-      chaine = f.read()  
-      f.close()   
-      chaine2=self.remplaceDICO(chaine,dicoPygmee)
-      print "chaine2 =", chaine2
-      chaine=self.remplaceDICO(chaine2,dicoAster)
-      print "chaine =", chaine
-\r
-      f=open(nom_fichier_ASTER,'wb')\r
-      f.write(chaine)\r
-      f.close()
-
-      if ('_ASTER_LANCEMENT' in dicoAster.keys()) and  dicoAster['_ASTER_LANCEMENT'] == 'oui':
-         commande="cd "+self.config.PATH_MODULE+";"
-         commande=commande + self.config.PATH_ASTER + "/as_run "+self.config.PATH_MODULE
-         commande=commande + "/"+self.config.NAME_SCHEME+"/"+self.config.NAME_SCHEME+"_aster.export"
-         print commande
-         os.system(commande)
-      else:
-         return ""
-
-   def GMSH(self) :
-      print "Generation de GMSH"
-      dicoGmsh=self.dictMCVal["GMSH"]
-      if ('_GMSH_LANCEMENT' in dicoGmsh.keys()) and  dicoGmsh['_GMSH_LANCEMENT'] == 'oui':
-         commande="cd "+self.config.PATH_MODULE+";"
-         commande=commande + "gmsh "+self.config.PATH_MODULE+"/"+self.config.NAME_SCHEME+"/"+self.config.NAME_SCHEME+"_aster.resu.msh"
-         print commande
-         os.system(commande)
-      else:
-         return ""
diff --git a/generator/generator_s_poly_st_1.py b/generator/generator_s_poly_st_1.py
new file mode 100644 (file)
index 0000000..5eab634
--- /dev/null
@@ -0,0 +1,190 @@
+# -*- coding: utf-8 -*-
+#            CONFIGURATION MANAGEMENT OF EDF VERSION
+# ======================================================================
+# COPYRIGHT (C) 1991 - 2002  EDF R&D                  WWW.CODE-ASTER.ORG
+# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
+# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
+# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
+# (AT YOUR OPTION) ANY LATER VERSION.
+#
+# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
+# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
+# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
+# GENERAL PUBLIC LICENSE FOR MORE DETAILS.
+#
+# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
+# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
+#    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
+#
+#
+# ======================================================================
+"""
+   Ce module contient le plugin generateur de fichier au format
+   SEP pour EFICAS.
+
+"""
+import traceback
+import types,string,re,os
+
+from generator_map import MapGenerator
+
+#____________________________________________________________________________________
+# PYGMEEDict contient une equivalence entre le catalogue Map et les lignes generees
+# comme entete (commentaire ?) dans le fichier d'input de pygmee
+#
+
+CONFIGliste=('NAME_SCHEME', 'PATH_ASTER', 'PATH_BENHUR', 'PATH_MODULE', 'PATH_PYGMEE', 'PATH_STUDY', 'repIni')
+PYGMEEDict={
+       "_PYGMEE_FUSEAU1_b_forme_FICHIER"  : "#fuseau 1 (entree de lecfus) format : diametre DCE croissant / fraction cumulee decroisant ",
+       "FUSEAU2" :  "#fuseau 2 (entree de lecfus) format : diametre DCE croissant / fraction cumulee decroisant",
+       "_PYGMEE_TAILLE" : "# taille du VER en microns ",
+       "_PYGMEE_DISTANCE" : "# distance de repulsion :",
+           }
+
+#_______________________________________________________________________________________________________
+# listeOrdonneeMCPygmee contient une liste (donc ordonnee) des mots clefs pour 
+# imposer l'ordre des  lignes generees
+listeOrdonneeMCPygmee =('_PYGMEE_FUSEAU1_b_forme_FICHIER', 'FUSEAU2', '_PYGMEE_TAILLE','_PYGMEE_DISTANCE')
+
+
+BENHURDict={
+       "_BENHUR_FINESSE" : "discretisation des arretes du VER ",
+           }
+
+ASTERDict={
+       "_ASTER_LANCEMENT" : "execution de Code_Aster",
+       "_ASTER_CONDUCTIVITE_I" : "conductivite des inclusions",
+       "_ASTER_CONDUCTIVITE_M" : "conductivite de la matrice",
+           }
+
+GMSHDict={
+       "_GMSH_LANCEMENT" : "execution de GMSH",
+           }
+
+def entryPoint():
+   """
+      Retourne les informations necessaires pour le chargeur de plugins
+
+      Ces informations sont retournees dans un dictionnaire
+   """
+   return {
+        # Le nom du plugin
+          'name' : 's_poly_st_1',
+        # La factory pour creer une instance du plugin
+          'factory' : s_poly_st_1Generator,
+          }
+
+
+class s_poly_st_1Generator(MapGenerator):
+   """
+      Ce generateur parcourt un objet de type JDC et produit
+      un texte au format eficas et
+      un texte au format py
+
+   """
+   
+
+   def PYGMEE(self) :
+       print "Generation de PYGMEE"
+       dicoPygmee=self.dictMCVal["PYGMEE"]
+       monFichier=self.config.PATH_PYGMEE+"/pygmee_input.txt"
+
+       #Lecture du fichier a trous
+       f = file(self.config.repIni+"/pygmee_input.txt","r")
+       chaine = f.read()  
+       f.close()   
+       chaine2=self.remplaceCONFIG(chaine,CONFIGliste)
+       chaine=self.remplaceDICO(chaine2,dicoPygmee)
+
+       if  os.path.isfile(monFichier) :
+           #print "je detruis pygmee_input.txt"
+           commande="rm -rf " + monFichier
+           os.system (commande)
+       f=open(monFichier,'wb')
+       f.write(chaine)
+       f.close()
+       if ('_PYGMEE_LANCEMENT' in dicoPygmee.keys()) and  dicoPygmee['_PYGMEE_LANCEMENT'] == 'oui':
+           commande="cd "+self.config.PATH_PYGMEE+";"
+           commande=commande + "python "+self.config.PATH_PYGMEE+"/pygmee_v1.py"
+           #print commande
+           os.system(commande)
+       else:
+          return ""
+
+   def BENHUR(self) :
+       print "Generation de BENHUR"
+       dicoBenhur=self.dictMCVal["BENHUR"]
+       if ("PYGMEE" in self.dictMCVal.keys()) and '_PYGMEE_TAILLE' in self.dictMCVal['PYGMEE']:
+           dicoBenhur["_PYGMEE_TAILLE"]=self.dictMCVal["PYGMEE"]['_PYGMEE_TAILLE']
+       else :
+           dicoBenhur["_PYGMEE_TAILLE"]=0
+           print "Attention la variable Taille_VER non definie"
+       
+       finesse=str(dicoBenhur["_BENHUR_FINESSE"])
+       nom_fichier_BHR=self.config.PATH_STUDY+"/"+self.config.NAME_SCHEME+"_benhur_"+finesse+".bhr"\r
+       nom_BHR_Files=self.config.PATH_BENHUR+"/BHR_files.txt"
+
+       #Lecture du fichier a trous
+       f = file(self.config.repIni+"/benhur_pygmee.txt","r")
+       chaine = f.read()  
+       f.close()   
+       chaine2=self.remplaceCONFIG(chaine,CONFIGliste)
+       print "chaine2 =", chaine2
+       chaine=self.remplaceDICO(chaine2,dicoBenhur)
+       print "chaine =", chaine
+
+       f=open(nom_fichier_BHR,'wb')
+       f.write(chaine)
+       f.close()
+
+       f=open(nom_BHR_Files,'wb')
+       f.write(nom_fichier_BHR)
+       f.write("\n\n\n")
+       f.close()
+
+       if ('_BENHUR_LANCEMENT' in dicoBenhur.keys()) and  dicoBenhur['_BENHUR_LANCEMENT'] == 'oui':
+           commande="cd "+self.config.PATH_BENHUR+";"
+           commande=commande + "./benhur"
+           print commande
+           os.system(commande)
+       else:
+          return ""
+
+
+
+   def ASTER(self) :
+      print "Generation de ASTER"
+      dicoAster=self.dictMCVal["ASTER"]
+      dicoPygmee=self.dictMCVal["PYGMEE"]
+      nom_racine=self.config.PATH_MODULE+"/"+self.config.NAME_SCHEME+"/"+self.config.NAME_SCHEME
+      nom_fichier_ASTER=nom_racine+"_aster.comm"
+
+      #Lecture du fichier a trous
+      f = file(self.config.repIni+"/s_poly_st_1_aster_template.comm","r")
+      chaine = f.read()  
+      f.close()   
+      chaine2=self.remplaceDICO(chaine,dicoPygmee)
+      chaine=self.remplaceDICO(chaine2,dicoAster)
+
+      f=open(nom_fichier_ASTER,'wb')
+      f.write(chaine)
+      f.close()
+
+      if ('_ASTER_LANCEMENT' in dicoAster.keys()) and  dicoAster['_ASTER_LANCEMENT'] == 'oui':
+         commande="cd "+self.config.PATH_MODULE+";"
+         commande=commande + self.config.PATH_ASTER + "/as_run "+self.config.PATH_MODULE
+         commande=commande + "/"+self.config.NAME_SCHEME+"/"+self.config.NAME_SCHEME+"_aster.export"
+         print commande
+         os.system(commande)
+      else:
+         return ""
+
+   def GMSH(self) :
+      dicoGmsh=self.dictMCVal["GMSH"]
+      if ('_GMSH_LANCEMENT' in dicoGmsh.keys()) and  dicoGmsh['_GMSH_LANCEMENT'] == 'oui':
+         commande="cd "+self.config.PATH_MODULE+";"
+         commande=commande + "gmsh "+self.config.PATH_MODULE+"/"+self.config.NAME_SCHEME+"/"+self.config.NAME_SCHEME+"_aster.resu.msh"
+         print commande
+         os.system(commande)
+      else:
+         return ""