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=3eefae078be303f337181c7b6952ed11fb2cc242;hp=2924f176fb4206201f27553b8e4b348dbcc5232d;hb=b24a2d1b7692bdb21cf037b026e0273ba547cef4;hpb=8a9d91b414c3f26586dea735c22c7700898a0a1e diff --git a/src/Tools/blocFissure/ihm/fissureGenerale_plugin.py b/src/Tools/blocFissure/ihm/fissureGenerale_plugin.py index 2924f176f..3eefae078 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-2021 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 @@ -19,15 +19,17 @@ # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # +"""Pilotage de la fenêtre de dialogue""" + # if you already have plugins defined in a salome_plugins.py file, add this file at the end. # if not, copy this file as ${HOME}/Plugins/smesh_plugins.py or ${APPLI}/Plugins/smesh_plugins.py -import sys, traceback -import math +import sys +import traceback from blocFissure import gmu def fissureGeneraleDlg(context): - # get context study, salomeGui + """get context study, salomeGui""" study = context.study sg = context.sg @@ -44,6 +46,7 @@ def fissureGeneraleDlg(context): from blocFissure.ihm.fissureGenerale_ui import Ui_Dialog class fissureGeneraleDialog(QtWidgets.QDialog): + """classe du dialogue""" def __init__(self): print("__init__") @@ -75,28 +78,28 @@ def fissureGeneraleDlg(context): self.ui.bb_OkCancel.accepted.connect(self.execute) def initDefaut(self): - self.defaut = dict( - nomCas = 'angleCube', - maillageSain = os.path.join(gmu.pathBloc, 'materielCasTests/CubeAngle.med'), - brepFaceFissure = os.path.join(gmu.pathBloc, "materielCasTests/CubeAngleFiss.brep"), - edgeFissIds = [4], - lgInfluence = 20, - meshBrep = (5,10), - rayonPipe = 5, - lenSegPipe = 2.5, - nbSegRad = 5, - nbSegCercle = 32, - areteFaceFissure = 10, - areteVives = 0, - reptrav = '.', - nomres = 'casStandard_fissure.med', + self.defaut = dict( \ + nomCas = "angleCube", \ + maillageSain = os.path.join(gmu.pathBloc, "materielCasTests", "CubeAngle.med"), \ + CAOFaceFissure = os.path.join(gmu.pathBloc, "materielCasTests", "CubeAngleFiss.brep"), \ + edgeFiss = [3], \ + lgInfluence = 20, \ + meshBrep = (5,10), \ + rayonPipe = 5, \ + lenSegPipe = 2.5, \ + nbSegRad = 5, \ + nbSegCercle = 32, \ + areteFaceFissure = 10, \ + areteVives = 0, \ + reptrav = os.curdir, \ + nomres = "maillage_avec_fissure", \ verbosite = 0) def initDialog(self, dico): self.ui.le_maillage.setText(dico['maillageSain']) - self.ui.le_facefiss.setText(dico['brepFaceFissure']) - self.ui.le_fondfiss.setText(str(dico['edgeFissIds'])) + self.ui.le_facefiss.setText(dico['CAOFaceFissure']) + self.ui.le_fondfiss.setText(str(dico['edgeFiss'])) self.ui.dsb_influence.setValue(dico['lgInfluence']) self.ui.dsb_meshBrepMin.setValue(dico['meshBrep'][0]) self.ui.dsb_meshBrepMax.setValue(dico['meshBrep'][1]) @@ -112,8 +115,7 @@ def fissureGeneraleDlg(context): 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 + #incomplet = self.testval(dico) def testval(self, dico): incomplet = False @@ -122,25 +124,40 @@ def fissureGeneraleDlg(context): incomplet = True else: self.ui.le_maillage.setPalette(self.blackPalette) - if not os.path.lexists(dico['brepFaceFissure']): + cao_file = dico['CAOFaceFissure'] + if not os.path.lexists(cao_file): self.ui.le_facefiss.setPalette(self.redPalette) incomplet = True else: - self.ui.le_facefiss.setPalette(self.blackPalette) - edgeFissIdsOK=True - try: - l = dico['edgeFissIds'] - for i in l: - if not isinstance(i, int): - print("not isinstance(i, int)") + suffix = os.path.basename(cao_file).split(".")[-1] + if ( suffix.upper() not in ("BREP","XAO") ): + print ("Suffixe inconnu pour le fichier {}".format(cao_file)) + self.ui.le_facefiss.setPalette(self.redPalette) + incomplet = True + else: + self.ui.le_facefiss.setPalette(self.blackPalette) + if dico['edgeFiss']: + edgeFissOK=True + param_0 = dico['edgeFiss'][0] + type_param_id = type(param_0) + for param in dico['edgeFiss'][1:]: + if not isinstance(param,type_param_id): + print ("La donnée {} n'est pas du même type que la première de la liste : {}.".format(param,type(param))) + incomplet = True + edgeFissOK=False + if edgeFissOK: + if isinstance(param_0, int): + pass + elif isinstance(param_0, str): + pass + else: + print("Il faut une liste de noms de groupes d'arêtes ou une liste d'IDs d'arêtes.") incomplet = True - edgeFissIdsOK=False - break - except: - print("except eval") + edgeFissOK=False + else: incomplet = True - edgeFissIdsOK=False - if edgeFissIdsOK: + edgeFissOK=False + if edgeFissOK: self.ui.le_fondfiss.setPalette(self.blackPalette) else: self.ui.le_fondfiss.setPalette(self.redPalette) @@ -174,19 +191,19 @@ def fissureGeneraleDlg(context): return incomplet def fileDefault(self): - filedef = os.path.expanduser("~/.config/salome/dialogFissureGenerale.dic") + filedef = os.path.expanduser( os.path.join(os.environ["HOME"], ".config", "salome", "dialogFissureGenerale.dic") ) print(filedef) return filedef def writeDefault(self, dico): filedef = self.fileDefault() - with open(filedef, 'w') as f: - f.write(str(dico)) + with open(filedef, 'w') as fichier: + fichier.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)): + maillageSain = os.path.join(gmu.pathBloc, "materielCasTests", "CubeAngle.med") + CAOFaceFissure = os.path.join(gmu.pathBloc, "materielCasTests", "CubeAngleFiss.brep") + if (os.path.exists(maillageSain) and os.path.exists(CAOFaceFissure )): self.initDialog(self.defaut) else: self.ui.lb_calcul.setText("--- Generation exemples en cours ---") @@ -198,8 +215,8 @@ def fissureGeneraleDlg(context): def readValPrec(self): filedef = self.fileDefault() if os.path.exists(filedef): - with open(filedef, 'r') as f: - txt = f.read() + with open(filedef, 'r') as fichier: + txt = fichier.read() dico = eval(txt) print(dico) self.initDialog(dico) @@ -220,7 +237,6 @@ def fissureGeneraleDlg(context): elif index == 2: initLog.setDebug(logfile) - def sauver(self): print("sauver") fileDiag = QFileDialog(self) @@ -234,8 +250,8 @@ def fissureGeneraleDlg(context): if filedef[-4:] not in ['.dic']: filedef += '.dic' dico = self.creeDico() - with open(filedef, 'w') as f: - f.write(str(dico)) + with open(filedef, 'w') as fichier: + fichier.write(str(dico)) def recharger(self): print("recharger") @@ -248,8 +264,8 @@ def fissureGeneraleDlg(context): filedef = fileNames[0] print(filedef) if os.path.exists(filedef): - with open(filedef, 'r') as f: - txt = f.read() + with open(filedef, 'r') as fichier: + txt = fichier.read() dico = eval(txt) print(dico) self.initDialog(dico) @@ -306,21 +322,21 @@ def fissureGeneraleDlg(context): self.ui.le_nomres.setText(nomres) def creeDico(self): - dico = dict( - maillageSain = str(self.ui.le_maillage.text()), - brepFaceFissure = str(self.ui.le_facefiss.text()), - edgeFissIds = eval(str(self.ui.le_fondfiss.text())), - lgInfluence = self.ui.dsb_influence.value(), - meshBrep = [self.ui.dsb_meshBrepMin.value(),self.ui.dsb_meshBrepMax.value()], - rayonPipe = self.ui.dsb_rayonPipe.value(), - lenSegPipe = self.ui.dsb_lenSegPipe.value(), - 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() + dico = dict( \ + maillageSain = str(self.ui.le_maillage.text()), \ + CAOFaceFissure = str(self.ui.le_facefiss.text()), \ + edgeFiss = eval(str(self.ui.le_fondfiss.text())), \ + lgInfluence = self.ui.dsb_influence.value(), \ + meshBrep = [self.ui.dsb_meshBrepMin.value(),self.ui.dsb_meshBrepMax.value()], \ + rayonPipe = self.ui.dsb_rayonPipe.value(), \ + lenSegPipe = self.ui.dsb_lenSegPipe.value(), \ + 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) return dico @@ -366,8 +382,6 @@ def fissureGeneraleDlg(context): self.ui.lb_calcul.hide() #self.accept() - pass - # ---------------------------------------------------------------------------- print("main") @@ -383,5 +397,3 @@ def fissureGeneraleDlg(context): retry = window.checkValues() else: print("dialog rejected, exit") - pass -