<x>0</x>
<y>0</y>
<width>664</width>
- <height>624</height>
+ <height>681</height>
</rect>
</property>
<property name="windowTitle">
<string>Insertion de fissure dans un maillage sain</string>
</property>
<property name="toolTip">
- <string><html><head/><body><p>Insertion d'un maillage de fissure dans un maillage hexaédrique sain.</p><p>Le maillage sain est fourni sous forme de fichier med.</p><p>La face de fissure est décrite par une géométrie dans un fichier brep.</p><p>La ou les arêtes de fond de fissure sont données par leurs index dans la face de fissure du point de vue de GEOM.</p><p>La procédure identifie des mailles saines à enlever et à remailler, construit un maillage régulier rayonnant autour de la ligne de fond de fissure, reconstitue les faces externes en triangles, complète la zone à remailler en tétraèdres.</p></body></html></string>
+ <string><html><head/><body><p>Insertion d'un maillage de fissure dans un maillage hexaédrique sain.</p><p>Le maillage sain est fourni sous forme de fichier med.</p><p>La face de fissure est décrite par une géométrie dans un fichier de cao au format xao ou brep.</p><p>Si le format xao est utilisé, le fond de la fissure est identifiable par les noms du ou des groupes d'arêtes créés sur ce fond.</p><p> Avec le format brep, le fond de fissure est donné par les index des arêtes du fond dans la face de fissure du point de vue de GEOM. Cela est également possible pour un format xao.</p><p>La procédure identifie des mailles saines à enlever et à remailler, construit un maillage régulier rayonnant autour de la ligne de fond de fissure, reconstitue les faces externes en triangles, complète la zone à remailler en tétraèdres.</p></body></html></string>
</property>
<layout class="QVBoxLayout" name="verticalLayout_3">
<item>
<widget class="QGroupBox" name="groupBox">
<property name="title">
- <string>Maillage sain et géometries de fissure</string>
+ <string>Maillage sain et géométries de fissure</string>
</property>
<layout class="QGridLayout" name="gridLayout_4">
<item row="1" column="0">
<item>
<widget class="QLabel" name="label">
<property name="text">
- <string>Index arêtes fond de fissure</string>
+ <string>Arêtes fond de fissure</string>
</property>
</widget>
</item>
<item>
<widget class="QLineEdit" name="le_fondfiss">
<property name="toolTip">
- <string><html><head/><body><p>Index des arêtes décrivant le fond de fissure, dans la face de fissure.</p><p>Sous forme d'une liste Python.</p><p>Exemples : <span style=" font-weight:600; font-style:italic; color:#000080;">[5,9]</span> ou<span style=" font-weight:600;"/><span style=" font-weight:600; font-style:italic; color:#000080;">[3]</span></p><p>(On peut récupérer ces valeurs à l'aide du dialogue de création de groupes d'edges, dans GEOM)</p></body></html></string>
+ <string><html><head/><body><p>Liste des noms des groupes d'arêtes formant le fond de la fissure.</p><p>Exemples : <span style=" font-weight:600; font-style:italic; color:#000080;">["F_1", "F_2"]</span> ou<span style=" font-weight:600;"/><span style=" font-weight:600; font-style:italic; color:#000080;">["Fond"]</span></p><p>Ou liste des index des arêtes décrivant le fond de fissure dans la face de fissure.</p><p>Exemples : <span style=" font-weight:600; font-style:italic; color:#000080;">[5,9]</span> ou<span style=" font-weight:600;"/><span style=" font-weight:600; font-style:italic; color:#000080;">[3]</span></p><p>(On peut récupérer ces valeurs à l'aide du dialogue de création de groupes d'edges, dans GEOM)</p></body></html></string>
</property>
</widget>
</item>
<item row="1" column="0">
<widget class="QPushButton" name="pb_facefiss">
<property name="toolTip">
- <string><html><head/><body><p>sélection du fichier brep (géométrie) décrivant la face de fissure.</p><p>Un champ rouge correspond à un fichier inexistant.</p></body></html></string>
+ <string><html><head/><body><p>sélection du fichier cao (format xao ou brep) décrivant la face de fissure.</p><p>Un champ rouge correspond à un fichier inexistant.</p></body></html></string>
</property>
<property name="text">
<string>Face fissure</string>
<item row="1" column="1">
<widget class="QLineEdit" name="le_facefiss">
<property name="toolTip">
- <string><html><head/><body><p>Fichier brep de la géométrie décrivant la face de fissure.</p></body></html></string>
+ <string><html><head/><body><p>Fichier cao de la géométrie décrivant la face de fissure (xao ou brep).</p></body></html></string>
</property>
</widget>
</item>
<item>
<widget class="QLabel" name="label_2">
<property name="text">
- <string>Distance influence</string>
+ <string>Distance d'influence</string>
</property>
</widget>
</item>
<item>
<widget class="QLabel" name="label_10">
<property name="text">
- <string>mode</string>
+ <string>Mode</string>
</property>
</widget>
</item>
<item row="1" column="0">
<widget class="QPushButton" name="pb_nomres">
<property name="text">
- <string>Nom résultat</string>
+ <string>Nom du résultat</string>
</property>
</widget>
</item>
# 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
from blocFissure.ihm.fissureGenerale_ui import Ui_Dialog
class fissureGeneraleDialog(QtWidgets.QDialog):
+ """classe du dialogue"""
def __init__(self):
print("__init__")
self.defaut = dict( \
nomCas = "angleCube", \
maillageSain = os.path.join(gmu.pathBloc, "materielCasTests", "CubeAngle.med"), \
- brepFaceFissure = os.path.join(gmu.pathBloc, "materielCasTests", "CubeAngleFiss.brep"), \
- edgeFissIds = [3], \
+ CAOFaceFissure = os.path.join(gmu.pathBloc, "materielCasTests", "CubeAngleFiss.brep"), \
+ edgeFiss = [3], \
lgInfluence = 20, \
meshBrep = (5,10), \
rayonPipe = 5, \
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])
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
incomplet = True
else:
self.ui.le_maillage.setPalette(self.blackPalette)
- cao_file = dico['brepFaceFissure']
+ cao_file = dico['CAOFaceFissure']
if not os.path.lexists(cao_file):
self.ui.le_facefiss.setPalette(self.redPalette)
incomplet = True
incomplet = True
else:
self.ui.le_facefiss.setPalette(self.blackPalette)
- if dico['edgeFissIds']:
- edgeFissIdsOK=True
- param_0 = dico['edgeFissIds'][0]
+ if dico['edgeFiss']:
+ edgeFissOK=True
+ param_0 = dico['edgeFiss'][0]
type_param_id = type(param_0)
- for param in dico['edgeFissIds'][1:]:
+ 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
- edgeFissIdsOK=False
- if edgeFissIdsOK:
+ edgeFissOK=False
+ if edgeFissOK:
if isinstance(param_0, int):
pass
elif isinstance(param_0, str):
pass
else:
- print("Il faut une liste d'IDs d'arêtes ou une liste de noms de groupes d'arêtes.")
+ print("Il faut une liste de noms de groupes d'arêtes ou une liste d'IDs d'arêtes.")
incomplet = True
- edgeFissIdsOK=False
+ 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)
return incomplet
def fileDefault(self):
- filedef = os.path.expanduser( os.path.join(os.environ["HOME"],".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)):
+ 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 ---")
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)
elif index == 2:
initLog.setDebug(logfile)
-
def sauver(self):
print("sauver")
fileDiag = QFileDialog(self)
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")
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)
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())), \
+ 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(), \
self.ui.lb_calcul.hide()
#self.accept()
- pass
-
# ----------------------------------------------------------------------------
print("main")
retry = window.checkValues()
else:
print("dialog rejected, exit")
- pass