Salome HOME
general crack dialog, another error detection
authorPaul RASCLE <paul.rascle@edf.fr>
Fri, 4 Mar 2016 15:29:26 +0000 (16:29 +0100)
committerPaul RASCLE <paul.rascle@edf.fr>
Fri, 4 Mar 2016 15:29:26 +0000 (16:29 +0100)
src/Tools/blocFissure/gmu/creeZoneDefautMaillage.py
src/Tools/blocFissure/gmu/peauInterne.py
src/Tools/blocFissure/gmu/restreintFaceFissure.py

index dee9bf84fadedccc6ed1b1da48cbf4ace116648a..5225d9834096cd34b8de5d0204c8aad01e623918 100644 (file)
@@ -4,6 +4,8 @@ import logging
 from geomsmesh import geompy
 import math
 from distance2 import distance2
 from geomsmesh import geompy
 import math
 from distance2 import distance2
+import traceback
+from fissError import fissError
 
 # -----------------------------------------------------------------------------
 # --- zone de defaut extraite du maillage
 
 # -----------------------------------------------------------------------------
 # --- zone de defaut extraite du maillage
@@ -60,5 +62,12 @@ def creeZoneDefautMaillage(maillagesSains, shapeDefaut, tailleDefaut,
     verticesShapes.append(vertices)
     pass
 
     verticesShapes.append(vertices)
     pass
 
+  if (nb == 0) :
+    texte = "La zone à remailler n'est pas détectée correctement.<br>"
+    texte += "Cause possible :<ul>"
+    texte += "<li>La distance d'influence est trop petite. "
+    texte += "L'ordre de grandeur minimal correspond à la taille des mailles du maillage sain dans la zone à remailler.</li></ul>"
+    raise fissError(traceback.extract_stack(),texte)
+
   dmoyen = math.sqrt(cumul/nb) # ~ taille de l'arête moyenne du maillage global
   return origShapes, verticesShapes, dmoyen
   dmoyen = math.sqrt(cumul/nb) # ~ taille de l'arête moyenne du maillage global
   return origShapes, verticesShapes, dmoyen
index 8d6643a5c8ae3130280fce6d7fb89212e3e51fa4..ae6870c883ad2932c1ce2a88a129458a23ce1862 100644 (file)
@@ -55,10 +55,11 @@ def peauInterne(fichierMaillage, shapeDefaut, nomZones):
     if i == "Entity_Hexa":
       nbhexa+=info[i]
   if (nbelem == 0) or (nbhexa < nbelem) :
     if i == "Entity_Hexa":
       nbhexa+=info[i]
   if (nbelem == 0) or (nbhexa < nbelem) :
-    texte = "La zone a remailler est incorrecte : "
+    texte = "La zone a remailler est incorrecte.<br>"
     texte += "Causes possibles :<ul>"
     texte += "<li>Les mailles à enlever dans le maillage sain n'ont pas été détectées.</li>"
     texte += "Causes possibles :<ul>"
     texte += "<li>Les mailles à enlever dans le maillage sain n'ont pas été détectées.</li>"
-    texte += "<li>Il n'y a pas que des Hexaèdres linéaires dans la zone à remailler (mailles quadratiques, tetraèdres non traités)</li></ul>"
+    texte += "<li>Certaines faces du maillage sain sont à l'envers : les normales aux faces en paroi de volume doivent être sortantes.</li>"
+    texte += "<li>Il n'y a pas que des Hexaèdres réglés linéaires dans la zone à remailler (notamment mailles quadratiques, tetraèdres non traités)</li></ul>"
     raise fissError(traceback.extract_stack(),texte)
 
   nbAdded, maillageSain, DefautBoundary = maillageSain.MakeBoundaryElements( SMESH.BND_2DFROM3D, 'DefBound', '', 0, [ zoneDefaut ])
     raise fissError(traceback.extract_stack(),texte)
 
   nbAdded, maillageSain, DefautBoundary = maillageSain.MakeBoundaryElements( SMESH.BND_2DFROM3D, 'DefBound', '', 0, [ zoneDefaut ])
index 7e1d1e0e4e081e9f0b49e0faab09c7bd557ae355..b300ae19f9086e10cfb53f8c7b26b985874bfd82 100644 (file)
@@ -27,7 +27,7 @@ def restreintFaceFissure(shapeDefaut, facesDefaut, pointInterne):
     try:
       facesPartShapeDefautSorted, minSurf, maxSurf = sortFaces(facesPartShapeDefaut) # la face de fissure dans le volume doit être la plus grande
     except:
     try:
       facesPartShapeDefautSorted, minSurf, maxSurf = sortFaces(facesPartShapeDefaut) # la face de fissure dans le volume doit être la plus grande
     except:
-      texte = "Restriction de la face de fissure au domaine solide impossible. "
+      texte = "Restriction de la face de fissure au domaine solide impossible.<br>"
       texte += "Causes possibles :<ul>"
       texte += "<li>La face de fissure est tangente à la paroi solide."
       texte += "Elle doit déboucher franchement, sans que la surface dehors ne devienne plus grande que la surface dans le solide.</li>"
       texte += "Causes possibles :<ul>"
       texte += "<li>La face de fissure est tangente à la paroi solide."
       texte += "Elle doit déboucher franchement, sans que la surface dehors ne devienne plus grande que la surface dans le solide.</li>"