mirror of
https://git.salome-platform.org/gitpub/modules/smesh.git
synced 2024-12-27 09:50:34 +05:00
Menus
This commit is contained in:
parent
bb1db63155
commit
681c10775e
@ -7,20 +7,20 @@
|
|||||||
<x>0</x>
|
<x>0</x>
|
||||||
<y>0</y>
|
<y>0</y>
|
||||||
<width>664</width>
|
<width>664</width>
|
||||||
<height>624</height>
|
<height>681</height>
|
||||||
</rect>
|
</rect>
|
||||||
</property>
|
</property>
|
||||||
<property name="windowTitle">
|
<property name="windowTitle">
|
||||||
<string>Insertion de fissure dans un maillage sain</string>
|
<string>Insertion de fissure dans un maillage sain</string>
|
||||||
</property>
|
</property>
|
||||||
<property name="toolTip">
|
<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>
|
</property>
|
||||||
<layout class="QVBoxLayout" name="verticalLayout_3">
|
<layout class="QVBoxLayout" name="verticalLayout_3">
|
||||||
<item>
|
<item>
|
||||||
<widget class="QGroupBox" name="groupBox">
|
<widget class="QGroupBox" name="groupBox">
|
||||||
<property name="title">
|
<property name="title">
|
||||||
<string>Maillage sain et géometries de fissure</string>
|
<string>Maillage sain et géométries de fissure</string>
|
||||||
</property>
|
</property>
|
||||||
<layout class="QGridLayout" name="gridLayout_4">
|
<layout class="QGridLayout" name="gridLayout_4">
|
||||||
<item row="1" column="0">
|
<item row="1" column="0">
|
||||||
@ -28,14 +28,14 @@
|
|||||||
<item>
|
<item>
|
||||||
<widget class="QLabel" name="label">
|
<widget class="QLabel" name="label">
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string>Index arêtes fond de fissure</string>
|
<string>Arêtes fond de fissure</string>
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item>
|
<item>
|
||||||
<widget class="QLineEdit" name="le_fondfiss">
|
<widget class="QLineEdit" name="le_fondfiss">
|
||||||
<property name="toolTip">
|
<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>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
@ -66,7 +66,7 @@
|
|||||||
<item row="1" column="0">
|
<item row="1" column="0">
|
||||||
<widget class="QPushButton" name="pb_facefiss">
|
<widget class="QPushButton" name="pb_facefiss">
|
||||||
<property name="toolTip">
|
<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>
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string>Face fissure</string>
|
<string>Face fissure</string>
|
||||||
@ -76,7 +76,7 @@
|
|||||||
<item row="1" column="1">
|
<item row="1" column="1">
|
||||||
<widget class="QLineEdit" name="le_facefiss">
|
<widget class="QLineEdit" name="le_facefiss">
|
||||||
<property name="toolTip">
|
<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>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
@ -110,7 +110,7 @@
|
|||||||
<item>
|
<item>
|
||||||
<widget class="QLabel" name="label_2">
|
<widget class="QLabel" name="label_2">
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string>Distance influence</string>
|
<string>Distance d'influence</string>
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
@ -209,7 +209,7 @@
|
|||||||
<item>
|
<item>
|
||||||
<widget class="QLabel" name="label_10">
|
<widget class="QLabel" name="label_10">
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string>mode</string>
|
<string>Mode</string>
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
@ -499,7 +499,7 @@
|
|||||||
<item row="1" column="0">
|
<item row="1" column="0">
|
||||||
<widget class="QPushButton" name="pb_nomres">
|
<widget class="QPushButton" name="pb_nomres">
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string>Nom résultat</string>
|
<string>Nom du résultat</string>
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
|
@ -19,15 +19,17 @@
|
|||||||
# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
|
# 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 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
|
# if not, copy this file as ${HOME}/Plugins/smesh_plugins.py or ${APPLI}/Plugins/smesh_plugins.py
|
||||||
|
|
||||||
import sys, traceback
|
import sys
|
||||||
import math
|
import traceback
|
||||||
from blocFissure import gmu
|
from blocFissure import gmu
|
||||||
|
|
||||||
def fissureGeneraleDlg(context):
|
def fissureGeneraleDlg(context):
|
||||||
# get context study, salomeGui
|
"""get context study, salomeGui"""
|
||||||
study = context.study
|
study = context.study
|
||||||
sg = context.sg
|
sg = context.sg
|
||||||
|
|
||||||
@ -44,6 +46,7 @@ def fissureGeneraleDlg(context):
|
|||||||
from blocFissure.ihm.fissureGenerale_ui import Ui_Dialog
|
from blocFissure.ihm.fissureGenerale_ui import Ui_Dialog
|
||||||
|
|
||||||
class fissureGeneraleDialog(QtWidgets.QDialog):
|
class fissureGeneraleDialog(QtWidgets.QDialog):
|
||||||
|
"""classe du dialogue"""
|
||||||
|
|
||||||
def __init__(self):
|
def __init__(self):
|
||||||
print("__init__")
|
print("__init__")
|
||||||
@ -78,8 +81,8 @@ def fissureGeneraleDlg(context):
|
|||||||
self.defaut = dict( \
|
self.defaut = dict( \
|
||||||
nomCas = "angleCube", \
|
nomCas = "angleCube", \
|
||||||
maillageSain = os.path.join(gmu.pathBloc, "materielCasTests", "CubeAngle.med"), \
|
maillageSain = os.path.join(gmu.pathBloc, "materielCasTests", "CubeAngle.med"), \
|
||||||
brepFaceFissure = os.path.join(gmu.pathBloc, "materielCasTests", "CubeAngleFiss.brep"), \
|
CAOFaceFissure = os.path.join(gmu.pathBloc, "materielCasTests", "CubeAngleFiss.brep"), \
|
||||||
edgeFissIds = [3], \
|
edgeFiss = [3], \
|
||||||
lgInfluence = 20, \
|
lgInfluence = 20, \
|
||||||
meshBrep = (5,10), \
|
meshBrep = (5,10), \
|
||||||
rayonPipe = 5, \
|
rayonPipe = 5, \
|
||||||
@ -95,8 +98,8 @@ def fissureGeneraleDlg(context):
|
|||||||
|
|
||||||
def initDialog(self, dico):
|
def initDialog(self, dico):
|
||||||
self.ui.le_maillage.setText(dico['maillageSain'])
|
self.ui.le_maillage.setText(dico['maillageSain'])
|
||||||
self.ui.le_facefiss.setText(dico['brepFaceFissure'])
|
self.ui.le_facefiss.setText(dico['CAOFaceFissure'])
|
||||||
self.ui.le_fondfiss.setText(str(dico['edgeFissIds']))
|
self.ui.le_fondfiss.setText(str(dico['edgeFiss']))
|
||||||
self.ui.dsb_influence.setValue(dico['lgInfluence'])
|
self.ui.dsb_influence.setValue(dico['lgInfluence'])
|
||||||
self.ui.dsb_meshBrepMin.setValue(dico['meshBrep'][0])
|
self.ui.dsb_meshBrepMin.setValue(dico['meshBrep'][0])
|
||||||
self.ui.dsb_meshBrepMax.setValue(dico['meshBrep'][1])
|
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_reptrav.setText(os.path.abspath(dico['reptrav']))
|
||||||
self.ui.le_nomres.setText(os.path.split(dico['nomres'])[1])
|
self.ui.le_nomres.setText(os.path.split(dico['nomres'])[1])
|
||||||
self.ui.cb_log.setCurrentIndex(dico['verbosite'])
|
self.ui.cb_log.setCurrentIndex(dico['verbosite'])
|
||||||
incomplet = self.testval(dico)
|
#incomplet = self.testval(dico)
|
||||||
pass
|
|
||||||
|
|
||||||
def testval(self, dico):
|
def testval(self, dico):
|
||||||
incomplet = False
|
incomplet = False
|
||||||
@ -122,7 +124,7 @@ def fissureGeneraleDlg(context):
|
|||||||
incomplet = True
|
incomplet = True
|
||||||
else:
|
else:
|
||||||
self.ui.le_maillage.setPalette(self.blackPalette)
|
self.ui.le_maillage.setPalette(self.blackPalette)
|
||||||
cao_file = dico['brepFaceFissure']
|
cao_file = dico['CAOFaceFissure']
|
||||||
if not os.path.lexists(cao_file):
|
if not os.path.lexists(cao_file):
|
||||||
self.ui.le_facefiss.setPalette(self.redPalette)
|
self.ui.le_facefiss.setPalette(self.redPalette)
|
||||||
incomplet = True
|
incomplet = True
|
||||||
@ -134,28 +136,28 @@ def fissureGeneraleDlg(context):
|
|||||||
incomplet = True
|
incomplet = True
|
||||||
else:
|
else:
|
||||||
self.ui.le_facefiss.setPalette(self.blackPalette)
|
self.ui.le_facefiss.setPalette(self.blackPalette)
|
||||||
if dico['edgeFissIds']:
|
if dico['edgeFiss']:
|
||||||
edgeFissIdsOK=True
|
edgeFissOK=True
|
||||||
param_0 = dico['edgeFissIds'][0]
|
param_0 = dico['edgeFiss'][0]
|
||||||
type_param_id = type(param_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):
|
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)))
|
print ("La donnée {} n'est pas du même type que la première de la liste : {}.".format(param,type(param)))
|
||||||
incomplet = True
|
incomplet = True
|
||||||
edgeFissIdsOK=False
|
edgeFissOK=False
|
||||||
if edgeFissIdsOK:
|
if edgeFissOK:
|
||||||
if isinstance(param_0, int):
|
if isinstance(param_0, int):
|
||||||
pass
|
pass
|
||||||
elif isinstance(param_0, str):
|
elif isinstance(param_0, str):
|
||||||
pass
|
pass
|
||||||
else:
|
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
|
incomplet = True
|
||||||
edgeFissIdsOK=False
|
edgeFissOK=False
|
||||||
else:
|
else:
|
||||||
incomplet = True
|
incomplet = True
|
||||||
edgeFissIdsOK=False
|
edgeFissOK=False
|
||||||
if edgeFissIdsOK:
|
if edgeFissOK:
|
||||||
self.ui.le_fondfiss.setPalette(self.blackPalette)
|
self.ui.le_fondfiss.setPalette(self.blackPalette)
|
||||||
else:
|
else:
|
||||||
self.ui.le_fondfiss.setPalette(self.redPalette)
|
self.ui.le_fondfiss.setPalette(self.redPalette)
|
||||||
@ -189,19 +191,19 @@ def fissureGeneraleDlg(context):
|
|||||||
return incomplet
|
return incomplet
|
||||||
|
|
||||||
def fileDefault(self):
|
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)
|
print(filedef)
|
||||||
return filedef
|
return filedef
|
||||||
|
|
||||||
def writeDefault(self, dico):
|
def writeDefault(self, dico):
|
||||||
filedef = self.fileDefault()
|
filedef = self.fileDefault()
|
||||||
with open(filedef, 'w') as f:
|
with open(filedef, 'w') as fichier:
|
||||||
f.write(str(dico))
|
fichier.write(str(dico))
|
||||||
|
|
||||||
def genereExemples(self):
|
def genereExemples(self):
|
||||||
maillageSain = os.path.join(gmu.pathBloc, "materielCasTests", "CubeAngle.med")
|
maillageSain = os.path.join(gmu.pathBloc, "materielCasTests", "CubeAngle.med")
|
||||||
brepFaceFissure = os.path.join(gmu.pathBloc, "materielCasTests", "CubeAngleFiss.brep")
|
CAOFaceFissure = os.path.join(gmu.pathBloc, "materielCasTests", "CubeAngleFiss.brep")
|
||||||
if (os.path.exists(maillageSain) and os.path.exists(brepFaceFissure)):
|
if (os.path.exists(maillageSain) and os.path.exists(CAOFaceFissure )):
|
||||||
self.initDialog(self.defaut)
|
self.initDialog(self.defaut)
|
||||||
else:
|
else:
|
||||||
self.ui.lb_calcul.setText("--- Generation exemples en cours ---")
|
self.ui.lb_calcul.setText("--- Generation exemples en cours ---")
|
||||||
@ -213,8 +215,8 @@ def fissureGeneraleDlg(context):
|
|||||||
def readValPrec(self):
|
def readValPrec(self):
|
||||||
filedef = self.fileDefault()
|
filedef = self.fileDefault()
|
||||||
if os.path.exists(filedef):
|
if os.path.exists(filedef):
|
||||||
with open(filedef, 'r') as f:
|
with open(filedef, 'r') as fichier:
|
||||||
txt = f.read()
|
txt = fichier.read()
|
||||||
dico = eval(txt)
|
dico = eval(txt)
|
||||||
print(dico)
|
print(dico)
|
||||||
self.initDialog(dico)
|
self.initDialog(dico)
|
||||||
@ -235,7 +237,6 @@ def fissureGeneraleDlg(context):
|
|||||||
elif index == 2:
|
elif index == 2:
|
||||||
initLog.setDebug(logfile)
|
initLog.setDebug(logfile)
|
||||||
|
|
||||||
|
|
||||||
def sauver(self):
|
def sauver(self):
|
||||||
print("sauver")
|
print("sauver")
|
||||||
fileDiag = QFileDialog(self)
|
fileDiag = QFileDialog(self)
|
||||||
@ -249,8 +250,8 @@ def fissureGeneraleDlg(context):
|
|||||||
if filedef[-4:] not in ['.dic']:
|
if filedef[-4:] not in ['.dic']:
|
||||||
filedef += '.dic'
|
filedef += '.dic'
|
||||||
dico = self.creeDico()
|
dico = self.creeDico()
|
||||||
with open(filedef, 'w') as f:
|
with open(filedef, 'w') as fichier:
|
||||||
f.write(str(dico))
|
fichier.write(str(dico))
|
||||||
|
|
||||||
def recharger(self):
|
def recharger(self):
|
||||||
print("recharger")
|
print("recharger")
|
||||||
@ -263,8 +264,8 @@ def fissureGeneraleDlg(context):
|
|||||||
filedef = fileNames[0]
|
filedef = fileNames[0]
|
||||||
print(filedef)
|
print(filedef)
|
||||||
if os.path.exists(filedef):
|
if os.path.exists(filedef):
|
||||||
with open(filedef, 'r') as f:
|
with open(filedef, 'r') as fichier:
|
||||||
txt = f.read()
|
txt = fichier.read()
|
||||||
dico = eval(txt)
|
dico = eval(txt)
|
||||||
print(dico)
|
print(dico)
|
||||||
self.initDialog(dico)
|
self.initDialog(dico)
|
||||||
@ -323,8 +324,8 @@ def fissureGeneraleDlg(context):
|
|||||||
def creeDico(self):
|
def creeDico(self):
|
||||||
dico = dict( \
|
dico = dict( \
|
||||||
maillageSain = str(self.ui.le_maillage.text()), \
|
maillageSain = str(self.ui.le_maillage.text()), \
|
||||||
brepFaceFissure = str(self.ui.le_facefiss.text()), \
|
CAOFaceFissure = str(self.ui.le_facefiss.text()), \
|
||||||
edgeFissIds = eval(str(self.ui.le_fondfiss.text())), \
|
edgeFiss = eval(str(self.ui.le_fondfiss.text())), \
|
||||||
lgInfluence = self.ui.dsb_influence.value(), \
|
lgInfluence = self.ui.dsb_influence.value(), \
|
||||||
meshBrep = [self.ui.dsb_meshBrepMin.value(),self.ui.dsb_meshBrepMax.value()], \
|
meshBrep = [self.ui.dsb_meshBrepMin.value(),self.ui.dsb_meshBrepMax.value()], \
|
||||||
rayonPipe = self.ui.dsb_rayonPipe.value(), \
|
rayonPipe = self.ui.dsb_rayonPipe.value(), \
|
||||||
@ -381,8 +382,6 @@ def fissureGeneraleDlg(context):
|
|||||||
self.ui.lb_calcul.hide()
|
self.ui.lb_calcul.hide()
|
||||||
#self.accept()
|
#self.accept()
|
||||||
|
|
||||||
pass
|
|
||||||
|
|
||||||
# ----------------------------------------------------------------------------
|
# ----------------------------------------------------------------------------
|
||||||
|
|
||||||
print("main")
|
print("main")
|
||||||
@ -398,4 +397,3 @@ def fissureGeneraleDlg(context):
|
|||||||
retry = window.checkValues()
|
retry = window.checkValues()
|
||||||
else:
|
else:
|
||||||
print("dialog rejected, exit")
|
print("dialog rejected, exit")
|
||||||
pass
|
|
||||||
|
Loading…
Reference in New Issue
Block a user