From f5b8b8db48f7656973c555dcd8c0407f954b7789 Mon Sep 17 00:00:00 2001 From: Pascale Noyret Date: Tue, 23 Mar 2010 13:07:46 +0000 Subject: [PATCH] *** empty log message *** --- InterfaceQT4/editor.py | 20 +++++-- InterfaceQT4/qtEficas.py | 26 ++++++--- InterfaceQT4/viewManager.py | 6 ++ UiQT4/myMain.ui | 22 ------- generator/generator_map.py | 112 +++++++++++++----------------------- 5 files changed, 80 insertions(+), 106 deletions(-) diff --git a/InterfaceQT4/editor.py b/InterfaceQT4/editor.py index a43ae7f9..6ebcc589 100644 --- a/InterfaceQT4/editor.py +++ b/InterfaceQT4/editor.py @@ -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 "" diff --git a/InterfaceQT4/qtEficas.py b/InterfaceQT4/qtEficas.py index dd462365..b0ac333a 100644 --- a/InterfaceQT4/qtEficas.py +++ b/InterfaceQT4/qtEficas.py @@ -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() diff --git a/InterfaceQT4/viewManager.py b/InterfaceQT4/viewManager.py index c6a1d369..3626bb97 100644 --- a/InterfaceQT4/viewManager.py +++ b/InterfaceQT4/viewManager.py @@ -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() diff --git a/UiQT4/myMain.ui b/UiQT4/myMain.ui index e9285ce8..cf9dbea5 100644 --- a/UiQT4/myMain.ui +++ b/UiQT4/myMain.ui @@ -36,7 +36,6 @@ - @@ -54,7 +53,6 @@ - @@ -100,7 +98,6 @@ - @@ -257,25 +254,6 @@ Supprimer - - - - compute.pngcompute.png - - - Execution - - - - - Sauve Python - - - - - Enregistrer Python - - diff --git a/generator/generator_map.py b/generator/generator_map.py index 53030012..3210a1c3 100644 --- a/generator/generator_map.py +++ b/generator/generator_map.py @@ -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: -- 2.39.2