X-Git-Url: http://git.salome-platform.org/gitweb/?p=modules%2Fsmesh.git;a=blobdiff_plain;f=src%2FTools%2FblocFissure%2Fihm%2FfissureGenerale_plugin.py;h=15ff7bc0c10c0979fbd0f6d08baf2385f7d3b383;hp=fe0627fd18559d53c00afabc0993644e11bd5116;hb=0fc0831670e27a5611b941c52dc152fd63964515;hpb=7eda9ca931ed2a11cb5e4637e4ffe19f5c061115 diff --git a/src/Tools/blocFissure/ihm/fissureGenerale_plugin.py b/src/Tools/blocFissure/ihm/fissureGenerale_plugin.py index fe0627fd1..15ff7bc0c 100644 --- a/src/Tools/blocFissure/ihm/fissureGenerale_plugin.py +++ b/src/Tools/blocFissure/ihm/fissureGenerale_plugin.py @@ -1,6 +1,6 @@ # -*- coding: utf-8 -*- -# Copyright (C) 2006-2016 EDF R&D +# Copyright (C) 2006-2020 EDF R&D # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public @@ -27,62 +27,53 @@ import math from blocFissure import gmu def fissureGeneraleDlg(context): - # get context study, studyId, salomeGui + # get context study, salomeGui study = context.study - studyId = context.studyId sg = context.sg - + import os #import subprocess #import tempfile - from PyQt4 import QtCore - from PyQt4 import QtGui - from PyQt4.QtGui import QFileDialog - from PyQt4.QtGui import QMessageBox - from PyQt4.QtGui import QPalette - from PyQt4.QtGui import QColor - from PyQt4.QtCore import QString - from fissureGenerale_ui import Ui_Dialog - - class fissureGeneraleDialog(QtGui.QDialog): - + from PyQt5 import QtCore + from PyQt5 import QtWidgets + from PyQt5 import QtGui + from PyQt5.QtWidgets import QFileDialog + from PyQt5.QtWidgets import QMessageBox + from PyQt5.QtGui import QPalette + from PyQt5.QtGui import QColor + from blocFissure.ihm.fissureGenerale_ui import Ui_Dialog + + class fissureGeneraleDialog(QtWidgets.QDialog): + def __init__(self): - print "__init__" - QtGui.QDialog.__init__(self) + print("__init__") + QtWidgets.QDialog.__init__(self) # Set up the user interface from Designer. self.ui = Ui_Dialog() self.ui.setupUi(self) - + self.blackPalette = self.ui.dsb_influence.palette() self.redPalette = QPalette() self.redPalette.setColor(QPalette.Text, QColor(255,0,0)) self.NOK = False - + self.initDefaut() self.initDialog(self.defaut) self.ui.lb_calcul.hide() - + # Connect up the buttons. - self.connect(self.ui.pb_valPrec, QtCore.SIGNAL("clicked()"), - self.readValPrec) - self.connect(self.ui.pb_reset, QtCore.SIGNAL("clicked()"), - self.resetVal) - self.connect(self.ui.pb_recharger, QtCore.SIGNAL("clicked()"), - self.recharger) - self.connect(self.ui.pb_sauver, QtCore.SIGNAL("clicked()"), - self.sauver) - self.connect(self.ui.pb_maillage, QtCore.SIGNAL("clicked()"), - self.selectMaillage) - self.connect(self.ui.pb_facefiss, QtCore.SIGNAL("clicked()"), - self.selectFacefiss) - self.connect(self.ui.pb_reptrav, QtCore.SIGNAL("clicked()"), - self.selectReptrav) - self.connect(self.ui.pb_nomres, QtCore.SIGNAL("clicked()"), - self.selectNomres) - self.disconnect(self.ui.bb_OkCancel, QtCore.SIGNAL("accepted()"), self.accept) - self.connect(self.ui.bb_OkCancel, QtCore.SIGNAL("accepted()"), - self.execute) - + + self.ui.pb_exemple.clicked.connect(self.genereExemples) + self.ui.pb_valPrec.clicked.connect(self.readValPrec) + self.ui.pb_reset.clicked.connect(self.resetVal) + self.ui.pb_recharger.clicked.connect(self.recharger) + self.ui.pb_sauver.clicked.connect(self.sauver) + self.ui.pb_maillage.clicked.connect(self.selectMaillage) + self.ui.pb_facefiss.clicked.connect(self.selectFacefiss) + self.ui.pb_reptrav.clicked.connect(self.selectReptrav) + self.ui.bb_OkCancel.accepted.disconnect(self.accept) + self.ui.bb_OkCancel.accepted.connect(self.execute) + def initDefaut(self): self.defaut = dict( nomCas = 'angleCube', @@ -96,11 +87,12 @@ def fissureGeneraleDlg(context): nbSegRad = 5, nbSegCercle = 32, areteFaceFissure = 10, + areteVives = 0, reptrav = '.', nomres = 'casStandard_fissure.med', verbosite = 0) - + def initDialog(self, dico): self.ui.le_maillage.setText(dico['maillageSain']) self.ui.le_facefiss.setText(dico['brepFaceFissure']) @@ -113,12 +105,16 @@ def fissureGeneraleDlg(context): self.ui.sb_couronnes.setValue(dico['nbSegRad']) self.ui.sb_secteurs.setValue(dico['nbSegCercle']) self.ui.dsb_areteFaceFissure.setValue(dico['areteFaceFissure']) + if 'aretesVives' in dico: + self.ui.dsb_aretesVives.setValue(dico['aretesVives']) + else: + self.ui.dsb_aretesVives.setValue(0) self.ui.le_reptrav.setText(os.path.abspath(dico['reptrav'])) self.ui.le_nomres.setText(os.path.split(dico['nomres'])[1]) self.ui.cb_log.setCurrentIndex(dico['verbosite']) incomplet = self.testval(dico) pass - + def testval(self, dico): incomplet = False if not os.path.lexists(dico['maillageSain']): @@ -136,12 +132,12 @@ def fissureGeneraleDlg(context): l = dico['edgeFissIds'] for i in l: if not isinstance(i, int): - print"not isinstance(i, int)" + print("not isinstance(i, int)") incomplet = True edgeFissIdsOK=False break except: - print "except eval" + print("except eval") incomplet = True edgeFissIdsOK=False if edgeFissIdsOK: @@ -173,63 +169,76 @@ def fissureGeneraleDlg(context): incomplet = True else: self.ui.dsb_areteFaceFissure.setPalette(self.blackPalette) - - print "incomplet: ", incomplet + + print("incomplet: ", incomplet) return incomplet - + def fileDefault(self): filedef = os.path.expanduser("~/.config/salome/dialogFissureGenerale.dic") - print filedef + print(filedef) return filedef - + def writeDefault(self, dico): filedef = self.fileDefault() - f = open(filedef, 'w') - f.write(str(dico)) - f.close() - + with open(filedef, 'w') as f: + f.write(str(dico)) + + def genereExemples(self): + maillageSain = os.path.join(gmu.pathBloc, 'materielCasTests/CubeAngle.med') + brepFaceFissure = os.path.join(gmu.pathBloc, "materielCasTests/CubeAngleFiss.brep") + if (os.path.exists(maillageSain) and os.path.exists(brepFaceFissure)): + self.initDialog(self.defaut) + else: + self.ui.lb_calcul.setText("--- Generation exemples en cours ---") + self.ui.lb_calcul.show() + from blocFissure.materielCasTests import genereMateriel + self.ui.lb_calcul.hide() + self.initDialog(self.defaut) + def readValPrec(self): filedef = self.fileDefault() if os.path.exists(filedef): - f = open(filedef, 'r') - txt = f.read() + with open(filedef, 'r') as f: + txt = f.read() dico = eval(txt) - print dico + print(dico) self.initDialog(dico) def resetVal(self): #self.initDefaut() self.initDialog(self.defaut) - + def setLogVerbosity(self, logfile): from blocFissure.gmu import initLog # le mode de log s'initialise une seule fois - print "setLogVerbosity" + print("setLogVerbosity") index = self.ui.cb_log.currentIndex() - print index + print(index) if index == 0: initLog.setRelease(logfile) elif index == 1: initLog.setVerbose(logfile) elif index == 2: initLog.setDebug(logfile) - - + + def sauver(self): - print "sauver" + print("sauver") fileDiag = QFileDialog(self) fileDiag.setFileMode(QFileDialog.AnyFile) fileDiag.setNameFilter("Parametres *.dic (*.dic)") fileDiag.setViewMode(QFileDialog.List) if fileDiag.exec_() : fileNames = fileDiag.selectedFiles() + print(fileNames) filedef = fileNames[0] + if filedef[-4:] not in ['.dic']: + filedef += '.dic' dico = self.creeDico() - f = open(filedef, 'w') - f.write(str(dico)) - f.close() - + with open(filedef, 'w') as f: + f.write(str(dico)) + def recharger(self): - print "recharger" + print("recharger") fileDiag = QFileDialog(self) fileDiag.setFileMode(QFileDialog.ExistingFile) fileDiag.setNameFilter("Parametres *.dic (*.dic)") @@ -237,14 +246,14 @@ def fissureGeneraleDlg(context): if fileDiag.exec_() : fileNames = fileDiag.selectedFiles() filedef = fileNames[0] - print filedef + print(filedef) if os.path.exists(filedef): - f = open(filedef, 'r') - txt = f.read() + with open(filedef, 'r') as f: + txt = f.read() dico = eval(txt) - print dico + print(dico) self.initDialog(dico) - + def selectMaillage(self): fileDiag = QFileDialog(self) fileDiag.setFileMode(QFileDialog.ExistingFile) @@ -253,9 +262,9 @@ def fissureGeneraleDlg(context): if fileDiag.exec_() : fileNames = fileDiag.selectedFiles() filedef = fileNames[0] - print filedef + print(filedef) self.ui.le_maillage.setText(filedef) - + def selectFacefiss(self): fileDiag = QFileDialog(self) fileDiag.setFileMode(QFileDialog.ExistingFile) @@ -264,9 +273,9 @@ def fissureGeneraleDlg(context): if fileDiag.exec_() : fileNames = fileDiag.selectedFiles() filedef = fileNames[0] - print filedef + print(filedef) self.ui.le_facefiss.setText(filedef) - + def selectReptrav(self): fileDiag = QFileDialog(self) fileDiag.setFileMode(QFileDialog.Directory) @@ -275,10 +284,10 @@ def fissureGeneraleDlg(context): if fileDiag.exec_() : fileNames = fileDiag.selectedFiles() reptrav = str(fileNames[0]) - print "reptrav ", reptrav + print("reptrav ", reptrav) self.ui.le_reptrav.setText(os.path.abspath(reptrav)) - - + + def selectNomres(self): fileDiag = QFileDialog(self) fileDiag.setFileMode(QFileDialog.AnyFile) @@ -291,11 +300,11 @@ def fissureGeneraleDlg(context): if fileDiag.exec_() : fileNames = fileDiag.selectedFiles() tempnom = os.path.split(str(fileNames[0]))[1] - print "nomres ", tempnom + print("nomres ", tempnom) self.ui.le_nomres.setText(tempnom) else: self.ui.le_nomres.setText(nomres) - + def creeDico(self): dico = dict( maillageSain = str(self.ui.le_maillage.text()), @@ -308,22 +317,24 @@ def fissureGeneraleDlg(context): nbSegRad = self.ui.sb_couronnes.value(), nbSegCercle = self.ui.sb_secteurs.value(), areteFaceFissure = self.ui.dsb_areteFaceFissure.value(), + aretesVives = self.ui.dsb_aretesVives.value(), reptrav = str(self.ui.le_reptrav.text()), nomres = str(self.ui.le_nomres.text()), verbosite = self.ui.cb_log.currentIndex() ) - print dico + print(dico) return dico - + def checkValues(self): return self.NOK def execute(self): - print "execute" + print("execute") dico = self.creeDico() NOK = self.testval(dico) if not(NOK): self.writeDefault(dico) + self.ui.lb_calcul.setText("--- Calcul en cours ---") self.ui.lb_calcul.show() logfile=os.path.join(dico['reptrav'], dico['nomres']+".log") self.setLogVerbosity(logfile) @@ -333,32 +344,33 @@ def fissureGeneraleDlg(context): try: execInstance = casStandard(dico) except fissError as erreur: - print '-'*60 - print type(erreur) - print '-'*60 - print erreur.msg - print '-'*60 + print('-'*60) + print(type(erreur)) + print('-'*60) + print(erreur.msg) + print('-'*60) for ligne in erreur.pile: - print repr(ligne) - print '-'*60 + print(repr(ligne)) + print('-'*60) texte = erreur.msg # texte += +"
" +'-'*60 +"
" # for ligne in erreur.pile: # texte += repr(ligne) +"
" mbox = QMessageBox(self) mbox.setWindowTitle("erreur blocFissure") - mbox.setText(QString.fromUtf8(texte)) - mbox.exec_() + mbox.setText(str(texte)) + mbox.exec_() # except Exception as erreur: # print "exception non répertoriée" self.NOK = NOK - self.accept() - - pass + self.ui.lb_calcul.hide() + #self.accept() + + pass # ---------------------------------------------------------------------------- - - print "main" + + print("main") window = fissureGeneraleDialog() retry = True while(retry): @@ -367,9 +379,9 @@ def fissureGeneraleDlg(context): result = window.result() if result: # dialog accepted - print "dialog accepted, check" + print("dialog accepted, check") retry = window.checkValues() else: - print "dialog rejected, exit" + print("dialog rejected, exit") pass - +