]> SALOME platform Git repositories - modules/eficas.git/commitdiff
Salome HOME
*** empty log message ***
authorPascale Noyret <pascale.noyret@edf.fr>
Tue, 23 Mar 2010 13:07:46 +0000 (13:07 +0000)
committerPascale Noyret <pascale.noyret@edf.fr>
Tue, 23 Mar 2010 13:07:46 +0000 (13:07 +0000)
InterfaceQT4/editor.py
InterfaceQT4/qtEficas.py
InterfaceQT4/viewManager.py
UiQT4/myMain.ui
generator/generator_map.py

index a43ae7f9986fee1300a1f8a525a6ddffa0010b85..6ebcc589383a1ea951a2eaf50a92cdf60652a115 100644 (file)
@@ -475,7 +475,7 @@ class JDCEditor(QSplitter):
       if generator.plugins.has_key(format):
          # Le generateur existe on l'utilise
          self.generator=generator.plugins[format]()
-         jdc_formate=self.generator.gener(self.jdc,format='beautifie',configuration=self.appliEficas.CONFIGURATION)
+         jdc_formate=self.generator.gener(self.jdc,format='beautifie',config=self.appliEficas.CONFIGURATION)
          if not self.generator.cr.estvide():            
             self.affiche_infos("Erreur à la generation")
             QMessageBox.critical( self, "Erreur a la generation","EFICAS ne sait pas convertir ce JDC")
@@ -488,15 +488,15 @@ class JDCEditor(QSplitter):
          QMessageBox.critical( self, "Format "+format+" non reconnu","EFICAS ne sait pas convertir le JDC selon le format "+format)
          return ""
 
-    #------------#
-    def run(self):
-    #------------#
+    #-------------------------#
+    def run(self,exec="oui"):
+    #-------------------------#
       format=self.appliEficas.format_fichier
       self.textePython=""
       if generator.plugins.has_key(format):
          # Le generateur existe on l'utilise
          self.generator=generator.plugins[format]()
-         self.dicoRun=self.generator.generRUN(self.jdc,format='beautifie',configuration=self.appliEficas.CONFIGURATION)
+         self.dicoRun=self.generator.generRUN(self.jdc,format='beautifie',config=self.appliEficas.CONFIGURATION)
          if not self.generator.cr.estvide():            
             self.affiche_infos("Erreur à la generation")
             QMessageBox.critical( self, "Erreur a la generation","EFICAS ne sait pas convertir ce JDC")
@@ -505,7 +505,15 @@ class JDCEditor(QSplitter):
               txt= apply(JDCEditor.__dict__[code],(self,))
               if txt !="" :
                  self.textePython=self.textePython+txt
-      os.system(self.textePython)
+      if exec="oui" :
+         os.system(self.textePython)
+      else
+         return self.textePython
+    
+    def saveRun(self):
+        texte=self.run(exec="non")
+        print texte
+      
 
     def PYGMEE(self) :
        if self.dicoRun['PYGMEE']== "" : return ""
index dd462365e764a22d96700d932749704dfb1b15c3..b0ac333a2c60797ad19b03a47a425f9b2223d04b 100644 (file)
@@ -55,7 +55,9 @@ class Appli(Ui_Eficas,QMainWindow):
         Ui_Eficas.__init__(self)
         self.setupUi(self)
         self.ajoutIcones()
-        if code=='ASTER' : self.ASTER()
+        if code in Appli.__dict__.keys():
+          listeTexte=apply(Appli.__dict__[code],(self,))
+
         self.viewmanager = MyTabview(self) 
         self.recentMenu=self.menuFichier.addMenu(self.trUtf8('&Recents'))
         self.connecterSignaux() 
@@ -89,6 +91,20 @@ class Appli(Ui_Eficas,QMainWindow):
         self.connect(self.actionTraduitV8V9,SIGNAL("activated()"),self.traductionV8V9)
 
 
+    def MAP(self): 
+        self.actionExecution = QAction(self)
+        icon6 = QIcon(self.RepIcon+"/compute.png")
+        self.actionExecution.setIcon(icon6)
+        self.actionExecution.setObjectName("actionExecution")
+        self.menuJdC.addAction(self.actionExecution)
+        self.toolBar.addAction(self.actionExecution)
+        self.actionExecution.setText(QApplication.translate("Eficas", "Execution", None, QApplication.UnicodeUTF8))
+        self.connect(self.actionExecution,SIGNAL("activated()"),self.run)
+        self.actionEnregistrer_Python = QAction(self)
+        self.actionEnregistrer_Python.setObjectName("actionEnregistrer_Python")
+        self.menuFichier.addAction(self.actionEnregistrer_Python)
+        self.actionEnregistrer_Python.setText(QApplication.translate("Eficas", "Sauve Python", None,QApplication.UnicodeUTF8))
+        self.connect(self.actionEnregistrer_Python,SIGNAL("activated()"),self.saveRun)
 
     def ajoutIcones(self) :
         # Pour pallier les soucis de repertoire d icone
@@ -104,8 +120,6 @@ class Appli(Ui_Eficas,QMainWindow):
         self.actionCopier.setIcon(icon4)
         icon5 = QIcon(self.RepIcon+"/Paste24.png")
         self.actionColler.setIcon(icon5)
-        icon6 = QIcon(self.RepIcon+"/compute.png")
-        self.actionExecution.setIcon(icon6)
 
 
     def connecterSignaux(self) :
@@ -116,7 +130,6 @@ class Appli(Ui_Eficas,QMainWindow):
         self.connect(self.action_Ouvrir,SIGNAL("activated()"),self.fileOpen)
         self.connect(self.actionEnregistrer,SIGNAL("activated()"),self.fileSave)
         self.connect(self.actionEnregistrer_sous,SIGNAL("activated()"),self.fileSaveAs)
-        self.connect(self.actionEnregistrer_Python,SIGNAL("activated()"),self.SaveRun)
         self.connect(self.actionFermer,SIGNAL("activated()"),self.fileClose)
         self.connect(self.actionFermer_tout,SIGNAL("activated()"),self.fileCloseAll)
         self.connect(self.actionQuitter,SIGNAL("activated()"),self.fileExit)
@@ -127,7 +140,6 @@ class Appli(Ui_Eficas,QMainWindow):
         self.connect(self.actionCouper,SIGNAL("activated()"),self.editCut)
         self.connect(self.actionCopier,SIGNAL("activated()"),self.editCopy)
         self.connect(self.actionColler,SIGNAL("activated()"),self.editPaste)
-        self.connect(self.actionExecution,SIGNAL("activated()"),self.run)
         self.connect(self.actionSupprimer,SIGNAL("activated()"),self.supprimer)
 
         self.connect(self.actionRapport_de_Validation,SIGNAL("activated()"),self.jdcRapport)
@@ -332,8 +344,8 @@ class Appli(Ui_Eficas,QMainWindow):
     def run(self):
         self.viewmanager.run()
         
-    def SaveRun(self):
-        self.viewmanager.run()
+    def saveRun(self):
+        self.viewmanager.saveRun()
         
     def supprimer(self):
         self.viewmanager.handleSupprimer()
index c6a1d369ae56af25717d3325986422ac4a793ccf..3626bb97e6e8e18f1a3fce0937b902e66599692f 100644 (file)
@@ -77,6 +77,12 @@ class MyTabview:
        editor=self.dict_editors[index]
        editor.run()
 
+   def saveRun(self):
+       index=self.myQtab.currentIndex()
+       if index < 0 : return
+       editor=self.dict_editors[index]
+       editor.saveRun()
+
    def handleCloseAll(self):
        res=0
        self.appliEficas.sauveRecents()
index e9285ce8c07db0a757c8d159d371e8017da406fd..cf9dbea54cfb4bfa0c655bde6fa111bac79e5117 100644 (file)
@@ -36,7 +36,6 @@
     <addaction name="actionFermer_tout" />
     <addaction name="separator" />
     <addaction name="actionQuitter" />
-    <addaction name="actionEnregistrer_Python" />
    </widget>
    <widget class="QMenu" name="menuEdition" >
     <property name="title" >
@@ -54,7 +53,6 @@
     <addaction name="actionRapport_de_Validation" />
     <addaction name="actionFichier_Source" />
     <addaction name="actionFichier_Resultat" />
-    <addaction name="actionExecution" />
    </widget>
    <widget class="QMenu" name="menu_Aide" >
     <property name="title" >
    <addaction name="actionCouper" />
    <addaction name="actionCopier" />
    <addaction name="actionColler" />
-   <addaction name="actionExecution" />
   </widget>
   <action name="action_Nouveau" >
    <property name="icon" >
     <string>Supprimer</string>
    </property>
   </action>
-  <action name="actionExecution" >
-   <property name="icon" >
-    <iconset>
-     <normaloff>compute.png</normaloff>compute.png</iconset>
-   </property>
-   <property name="text" >
-    <string>Execution</string>
-   </property>
-  </action>
-  <action name="actionSauve_Python" >
-   <property name="text" >
-    <string>Sauve Python</string>
-   </property>
-  </action>
-  <action name="actionEnregistrer_Python" >
-   <property name="text" >
-    <string>Enregistrer Python</string>
-   </property>
-  </action>
  </widget>
  <resources/>
  <connections/>
index 530300126afcf6a29024a9f119e1d7887d17c4d4..3210a1c354a5dc3e8eb71db517a86e985401c5ab 100644 (file)
@@ -32,6 +32,8 @@ 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",
@@ -84,26 +86,15 @@ class MapGenerator(PythonGenerator):
    # Les extensions de fichier permis?
    extensions=('.comm',)
 
-   def gener(self,obj,format='brut',configuration=None):
-      self.PATH_PYGMEE=configuration.PATH_PYGMEE
-      self.PATH_BENHUR=configuration.PATH_BENHUR
-      self.PATH_ASTER=configuration.PATH_ASTER
-      self.PATH_MODULE=configuration.PATH_MODULE
-      self.NAME_SCHEME=configuration.NAME_SCHEME
-      self.PATH_STUDY=configuration.PATH_STUDY
+   def gener(self,obj,format='brut',config=None):
+      self.config=config
       self.dictMCVal={}
       self.listeTemp=[]
       self.text=PythonGenerator.gener(self,obj,format)
       self.generePythonMap()
       return self.text
 
-   def generRUN(self,obj,format='brut',configuration=None):
-      self.PATH_PYGMEE=configuration.PATH_PYGMEE
-      self.PATH_BENHUR=configuration.PATH_BENHUR
-      self.PATH_ASTER=configuration.PATH_ASTER
-      self.PATH_MODULE=configuration.PATH_MODULE
-      self.NAME_SCHEME=configuration.NAME_SCHEME
-      self.PATH_STUDY=configuration.PATH_STUDY
+   def generRUN(self,obj,format='brut',config=None):
       self.dictMCVal={}
       self.listeTemp=[]
       self.text=PythonGenerator.gener(self,obj,format)
@@ -161,6 +152,7 @@ class MapGenerator(PythonGenerator):
               txt=txt+str(dicoPygmee[mot])+"\n"
 
        if ('_PYGMEE_LANCEMENT' in dicoPygmee.keys()) and  dicoPygmee['_PYGMEE_LANCEMENT'] == 'oui':
+          print txt
           return txt
        else :
           return ""
@@ -168,69 +160,46 @@ class MapGenerator(PythonGenerator):
    def BENHUR(self) :
        print "Generation de BENHUR"
        dicoBenhur=self.dictMCVal["BENHUR"]
-       finesse=str(dicoBenhur['_BENHUR_FINESSE'])
-       
-       nom_fichier_BHR=self.PATH_STUDY+"/"+self.NAME_SCHEME+"_benhur_"+finesse+".bhr"
-
        if ("PYGMEE" in self.dictMCVal.keys()) and '_PYGMEE_TAILLE' in self.dictMCVal['PYGMEE']:
-           taille_VER=self.dictMCVal["PYGMEE"]['_PYGMEE_TAILLE']
+           dicoBenhur["_PYGMEE_TAILLE"]=self.dictMCVal["PYGMEE"]['_PYGMEE_TAILLE']
        else :
-           taille_VER=0
+           dicoBenhur["_PYGMEE_TAILLE"]=0
            print "Attention la variable Taille_VER non definie"
-
-       nom_etude=self.PATH_STUDY+"/"+self.NAME_SCHEME+"_benhur_"+finesse
-       nom_GMSH_in=self.PATH_BENHUR+"/regular_mesh_3D_"+finesse+".msh"
-       nom_GMSH_out=nom_etude+".msh"
-       nom_GMSH_in="regular_mesh_3D_"+finesse+".msh"
-       nom_GMSH_out=nom_etude+".msh"
-       nom_LOG=nom_etude+".log"
-       nom_BMP=nom_etude+".bmp"
-       nom_LEVELSET=nom_etude+"_levelset.txt"
-       nom_GMSH_out=nom_etude+".msh"
-       nom_LOG=nom_etude+".log"
-       nom_BMP=nom_etude+".bmp"
-       nom_LEVELSET=nom_etude+"_levelset.txt"
-       nom_fichier_fuseau=self.PATH_PYGMEE+"/benhur_input.txt"
-
-
-       txt="OPTIONS\n"
-       txt=txt+"3D BENHUR SCALE\n"
-       txt=txt+"I - Morphologie (MESSALA)\n"
-       txt=txt+"1) dimension du VER cubique [m] (entree)\n"
-       txt=txt+str(taille_VER)
-       txt=txt+"\n2) fraction volumique seuil écrétant le fuseau (entree)\n"
-       txt=txt+".11\n"
-       txt=txt+"3) fichier decrivant le fuseau granulaire descendant (entree)\n"
-       txt=txt+"-\n"
-       txt=txt+"4) fichier decrivant la position et la taille des boules (sortie)\n"
-       txt=txt+nom_fichier_fuseau
-       txt=txt+"\n5) fichier CAO de la morphologie (sortie)\n"
-       txt=txt+"-\n"
-       txt=txt+"6) facteur de correction de fraction volumique (entree)\n"
-       txt=txt+"1.0\n"
-       txt=txt+" \n"
-       txt=txt+"II - Maillage (BENHUR)\n"
-       txt=txt+"1) fichier entree décrivant le maillage support (entree)\n"
-       txt=txt+nom_GMSH_in
-       txt=txt+"\n2) fichier sortie du maillage  (sortie)\n"
-       txt=txt+nom_GMSH_out
-       txt=txt+"\n3) fichier commentaire sur les statistiques décrivant le maillage (sortie)\n"
-       txt=txt+nom_LOG
-       txt=txt+"\n4) fichier BMP décrivant une coupe binarisée du VER (sortie)\n"
-       txt=txt+nom_BMP
-       txt=txt+"\n5) fichier TXT donnant la level set du contour aux noeuds (sortie)\n"
-       txt=txt+nom_LEVELSET
-       txt=txt+"\n\n\n"
-
+       
+       nom_fichier_BHR=self.config.PATH_STUDY+"/"+self.config.NAME_SCHEME+"_benhur_"+str(dicoBenhur["_BENHUR_FINESSE"])+".bhr"
+
+       #Lecture du fichier a trous
+       f = file(self.config.REPINI+"/benhur_pygmee.txt","r")
+       chaine = f.read()  
+       f.close()   
+       chaine2=self.remplaceCONFIG(chaine)
+       chaine=self.remplaceDICO(chaine2,dicoBenhur)
        if ('_BENHUR_LANCEMENT' in dicoBenhur.keys()) and  dicoBenhur['_BENHUR_LANCEMENT'] == 'oui':
-           return(nom_fichier_BHR,txt)
+           return(nom_fichier_BHR,chaine)
        else:
           return ""
 
+   def  remplaceCONFIG(self,chaine) :
+       for mot in CONFIGliste :
+           rplact="%_"+mot+"%"
+           result=chaine.replace(rplact,self.config.__dict__[mot])
+           chaine=result
+       return chaine
+
+   def  remplaceDICO(self,chaine,dico) :
+       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"]
-      nom_racine=self.PATH_MODULE+"/"+self.NAME_SCHEME+"/"+self.NAME_SCHEME
+      nom_racine=self.config.PATH_MODULE+"/"+self.config.NAME_SCHEME+"/"+self.config.NAME_SCHEME
       nom_mat=nom_racine+"_aster.mat"
       lambda_matrice=self.dictMCVal["ASTER"]['_ASTER_CONDUCTIVITE_M']
       lambda_inclusions=self.dictMCVal["ASTER"]['_ASTER_CONDUCTIVITE_I']
@@ -243,8 +212,9 @@ class MapGenerator(PythonGenerator):
          f.write("\n")
       f.close()
       if ('_ASTER_LANCEMENT' in dicoAster.keys()) and  dicoAster['_ASTER_LANCEMENT'] == 'oui':
-         commande="cd "+self.PATH_MODULE+";"
-         commande=commande + self.PATH_ASTER + "/as_run "+self.PATH_MODULE+"/"+self.NAME_SCHEME+"/"+self.NAME_SCHEME+"_aster.export"
+         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:
@@ -254,8 +224,8 @@ class MapGenerator(PythonGenerator):
       print "Generation de GMSH"
       dicoGmsh=self.dictMCVal["GMSH"]
       if ('_GMSH_LANCEMENT' in dicoGmsh.keys()) and  dicoGmsh['_GMSH_LANCEMENT'] == 'oui':
-         commande="cd "+self.PATH_MODULE+";"
-         commande=commande + "gmsh "+self.PATH_MODULE+"/"+self.NAME_SCHEME+"/"+self.NAME_SCHEME+"_aster.resu.msh"
+         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: