From c178a1a49169d525650f4a4d8485a88f8058ffc4 Mon Sep 17 00:00:00 2001 From: Paul RASCLE Date: Thu, 12 May 2016 15:19:52 +0200 Subject: [PATCH] Plugin blocFissure, bug EDF 12976, regression on some tests, a first correction --- src/Tools/blocFissure/gmu/casStandard.py | 7 +- .../gmu/construitFissureGenerale.py | 8 ++- .../blocFissure/gmu/mailleAretesEtJonction.py | 4 +- src/Tools/blocFissure/ihm/fissureGenerale.ui | 66 +++++++++++++------ .../blocFissure/ihm/fissureGenerale_plugin.py | 6 ++ 5 files changed, 65 insertions(+), 26 deletions(-) diff --git a/src/Tools/blocFissure/gmu/casStandard.py b/src/Tools/blocFissure/gmu/casStandard.py index cffd6aac8..e52b70013 100644 --- a/src/Tools/blocFissure/gmu/casStandard.py +++ b/src/Tools/blocFissure/gmu/casStandard.py @@ -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): diff --git a/src/Tools/blocFissure/gmu/construitFissureGenerale.py b/src/Tools/blocFissure/gmu/construitFissureGenerale.py index f75c2742b..c02c09803 100644 --- a/src/Tools/blocFissure/gmu/construitFissureGenerale.py +++ b/src/Tools/blocFissure/gmu/construitFissureGenerale.py @@ -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 diff --git a/src/Tools/blocFissure/gmu/mailleAretesEtJonction.py b/src/Tools/blocFissure/gmu/mailleAretesEtJonction.py index 179124308..e8f9d8197 100644 --- a/src/Tools/blocFissure/gmu/mailleAretesEtJonction.py +++ b/src/Tools/blocFissure/gmu/mailleAretesEtJonction.py @@ -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") diff --git a/src/Tools/blocFissure/ihm/fissureGenerale.ui b/src/Tools/blocFissure/ihm/fissureGenerale.ui index 5a6d1f027..bdf1e36c1 100644 --- a/src/Tools/blocFissure/ihm/fissureGenerale.ui +++ b/src/Tools/blocFissure/ihm/fissureGenerale.ui @@ -6,8 +6,8 @@ 0 0 - 666 - 589 + 663 + 624 @@ -416,24 +416,48 @@ - - - aretes face fissure - - - - - - - <html><head/><body><p>Faces externes de la zone à remailler.</p><p>Mailage en triangles : valeur cible des arêtes.</p></body></html> - - - 5 - - - 1000000.000000000000000 - - + + + + + triangles face fissure + + + + + + + <html><head/><body><p>Faces externes de la zone à remailler.</p><p>Maillage en triangles : valeur cible des arêtes des triangles.</p></body></html> + + + 5 + + + 1000000.000000000000000 + + + + + + + aretes vives + + + + + + + <html><head/><body><p>Arêtes vives de la zone à remailler.</p><p>Longueur des segments sur ces arêtes.</p><p>Ce paramètre est <span style=" font-weight:600; font-style:italic; color:#2631c1;">optionnel</span> : laissé à 0,</p><p>il est est ajusté automatiquement.</p></body></html> + + + 5 + + + 100000.000000000000000 + + + + @@ -482,7 +506,7 @@ - <html><head/><body><p>Nom des résultats.</p><p>Le fichier maillage résultat sera rangé dans le répertoire de travail, sous le nom fissure_<span style=" font-weight:600; font-style:italic; color:#0055ff;">Nom</span>.med</p><p><br/></p></body></html> + <html><head/><body><p>Nom des résultats.</p><p>Le fichier maillage résultat sera rangé dans le répertoire de travail, sous le nom <span style=" font-weight:600; font-style:italic; color:#0055ff;">Nom</span>.med</p><p><br/></p></body></html> diff --git a/src/Tools/blocFissure/ihm/fissureGenerale_plugin.py b/src/Tools/blocFissure/ihm/fissureGenerale_plugin.py index e9645a8fe..89ac32c6e 100644 --- a/src/Tools/blocFissure/ihm/fissureGenerale_plugin.py +++ b/src/Tools/blocFissure/ihm/fissureGenerale_plugin.py @@ -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() -- 2.30.2