Plugin blocFissure, bug EDF 12976, regression on some tests, a first correction

This commit is contained in:
Paul RASCLE 2016-05-12 15:19:52 +02:00
parent bc95c31002
commit c178a1a491
5 changed files with 65 additions and 26 deletions

View File

@ -48,7 +48,7 @@ class casStandard(fissureGenerique):
if self.dicoParams.has_key('reptrav'):
self.reptrav = self.dicoParams['reptrav']
else:
reptrav = '.'
self.reptrav = '.'
self.numeroCas = numeroCas
if self.numeroCas != 0:
self.nomCas = self.nomProbleme +"_%d"%(self.numeroCas)
@ -62,6 +62,8 @@ class casStandard(fissureGenerique):
step = self.dicoParams['step']
else:
step = -1 # exécuter toutes les étapes
if not self.dicoParams.has_key('aretesVives'):
self.dicoParams['aretesVives'] = 0
if self.numeroCas == 0: # valeur par défaut : exécution immédiate, sinon execution différée dans le cas d'une liste de problèmes
self.executeProbleme(step)
@ -121,7 +123,8 @@ class casStandard(fissureGenerique):
nomFicFissure = self.nomCas,
nbsegRad = self.dicoParams['nbSegRad'],
nbsegCercle = self.dicoParams['nbSegCercle'],
areteFaceFissure = self.dicoParams['areteFaceFissure'])
areteFaceFissure = self.dicoParams['areteFaceFissure'],
aretesVives = self.dicoParams['aretesVives'])
# ---------------------------------------------------------------------------
def genereZoneDefaut(self, geometriesSaines, maillagesSains, shapesFissure, shapeFissureParams, maillageFissureParams):

View File

@ -81,6 +81,9 @@ def construitFissureGenerale(maillagesSains,
nbsegRad = maillageFissureParams['nbsegRad'] # nombre de couches selon un rayon du pipe
nbsegCercle = maillageFissureParams['nbsegCercle'] # nombre de secteur dans un cercle du pipe
areteFaceFissure = maillageFissureParams['areteFaceFissure']
lgAretesVives = 0
if maillageFissureParams.has_key('aretesVives'):
lgAretesVives = maillageFissureParams['aretesVives']
pointIn_x = 0.0
pointIn_y = 0.0
@ -121,6 +124,9 @@ def construitFissureGenerale(maillagesSains,
#edgeFondExt = elementsDefaut[14]
centreFondFiss = elementsDefaut[15]
#tgtCentre = elementsDefaut[16]
if lgAretesVives == 0:
lgAretesVives = dmoyen
O, OX, OY, OZ = triedreBase()
@ -246,7 +252,7 @@ def construitFissureGenerale(maillagesSains,
# --- edges de bord, faces défaut à respecter
(internalBoundary, bordsLibres, grpAretesVives) = mailleAretesEtJonction(internalBoundary, aretesVivesCoupees, dmoyen)
(internalBoundary, bordsLibres, grpAretesVives) = mailleAretesEtJonction(internalBoundary, aretesVivesCoupees, lgAretesVives)
# --- maillage faces de fissure

View File

@ -8,7 +8,7 @@ import SMESH
from putName import putName
def mailleAretesEtJonction(internalBoundary, aretesVivesCoupees, dmoyen):
def mailleAretesEtJonction(internalBoundary, aretesVivesCoupees, lgAretesVives):
"""
edges de bord, faces défaut à respecter
"""
@ -36,7 +36,7 @@ def mailleAretesEtJonction(internalBoundary, aretesVivesCoupees, dmoyen):
aretesVivesC = geompy.MakeCompound(aretesVivesCoupees)
meshAretesVives = smesh.Mesh(aretesVivesC)
algo1d = meshAretesVives.Segment()
hypo1d = algo1d.LocalLength(dmoyen,[],1e-07)
hypo1d = algo1d.LocalLength(lgAretesVives,[],1e-07)
putName(algo1d.GetSubMesh(), "aretesVives")
putName(algo1d, "algo1d_aretesVives")
putName(hypo1d, "hypo1d_aretesVives")

View File

@ -6,8 +6,8 @@
<rect>
<x>0</x>
<y>0</y>
<width>666</width>
<height>589</height>
<width>663</width>
<height>624</height>
</rect>
</property>
<property name="windowTitle">
@ -416,24 +416,48 @@
</property>
<layout class="QHBoxLayout" name="horizontalLayout_11">
<item>
<widget class="QLabel" name="label_9">
<property name="text">
<string>aretes face fissure</string>
</property>
</widget>
</item>
<item>
<widget class="QDoubleSpinBox" name="dsb_areteFaceFissure">
<property name="toolTip">
<string>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Faces externes de la zone à remailler.&lt;/p&gt;&lt;p&gt;Mailage en triangles : valeur cible des arêtes.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
</property>
<property name="decimals">
<number>5</number>
</property>
<property name="maximum">
<double>1000000.000000000000000</double>
</property>
</widget>
<layout class="QGridLayout" name="gridLayout_6">
<item row="0" column="0">
<widget class="QLabel" name="label_9">
<property name="text">
<string>triangles face fissure</string>
</property>
</widget>
</item>
<item row="0" column="1">
<widget class="QDoubleSpinBox" name="dsb_areteFaceFissure">
<property name="toolTip">
<string>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Faces externes de la zone à remailler.&lt;/p&gt;&lt;p&gt;Maillage en triangles : valeur cible des arêtes des triangles.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
</property>
<property name="decimals">
<number>5</number>
</property>
<property name="maximum">
<double>1000000.000000000000000</double>
</property>
</widget>
</item>
<item row="1" column="0">
<widget class="QLabel" name="label_11">
<property name="text">
<string>aretes vives</string>
</property>
</widget>
</item>
<item row="1" column="1">
<widget class="QDoubleSpinBox" name="dsb_aretesVives">
<property name="toolTip">
<string>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Arêtes vives de la zone à remailler.&lt;/p&gt;&lt;p&gt;Longueur des segments sur ces arêtes.&lt;/p&gt;&lt;p&gt;Ce paramètre est &lt;span style=&quot; font-weight:600; font-style:italic; color:#2631c1;&quot;&gt;optionnel&lt;/span&gt; : laissé à 0,&lt;/p&gt;&lt;p&gt;il est est ajusté automatiquement.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
</property>
<property name="decimals">
<number>5</number>
</property>
<property name="maximum">
<double>100000.000000000000000</double>
</property>
</widget>
</item>
</layout>
</item>
<item>
<spacer name="horizontalSpacer_5">
@ -482,7 +506,7 @@
<item row="1" column="1">
<widget class="QLineEdit" name="le_nomres">
<property name="toolTip">
<string>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Nom des résultats.&lt;/p&gt;&lt;p&gt;Le fichier maillage résultat sera rangé dans le répertoire de travail, sous le nom fissure_&lt;span style=&quot; font-weight:600; font-style:italic; color:#0055ff;&quot;&gt;Nom&lt;/span&gt;.med&lt;/p&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
<string>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Nom des résultats.&lt;/p&gt;&lt;p&gt;Le fichier maillage résultat sera rangé dans le répertoire de travail, sous le nom &lt;span style=&quot; font-weight:600; font-style:italic; color:#0055ff;&quot;&gt;Nom&lt;/span&gt;.med&lt;/p&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
</property>
</widget>
</item>

View File

@ -98,6 +98,7 @@ def fissureGeneraleDlg(context):
nbSegRad = 5,
nbSegCercle = 32,
areteFaceFissure = 10,
areteVives = 0,
reptrav = '.',
nomres = 'casStandard_fissure.med',
verbosite = 0)
@ -115,6 +116,10 @@ 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 dico.has_key('aretesVives'):
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'])
@ -324,6 +329,7 @@ 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()