Salome HOME
Merge tag 'V8_3_0a2' into ngr/python3_dev
[modules/smesh.git] / src / Tools / blocFissure / gmu / restreintFaceFissure.py
index 50e867e0cbc3e4739460cde84ca8fbf1cdb99a74..cdda80f8533415932be2b6976ef0f50858fe96d1 100644 (file)
@@ -1,11 +1,13 @@
 # -*- coding: utf-8 -*-
 
 import logging
-from geomsmesh import geompy
-from geomsmesh import geomPublish
-from geomsmesh import geomPublishInFather
-import initLog
-from sortFaces import sortFaces
+from .geomsmesh import geompy
+from .geomsmesh import geomPublish
+from .geomsmesh import geomPublishInFather
+from . import initLog
+from .sortFaces import sortFaces
+import traceback
+from .fissError import fissError
 
 def restreintFaceFissure(shapeDefaut, facesDefaut, pointInterne):
   """
@@ -22,7 +24,16 @@ def restreintFaceFissure(shapeDefaut, facesDefaut, pointInterne):
     logging.debug("selection de la face la plus proche du point interne, distance=%s",distfaces[0][0])
     facesPortFissure = distfaces[0][2]
   else:
-    facesPartShapeDefautSorted, minSurf, maxSurf = sortFaces(facesPartShapeDefaut) # la face de fissure dans le volume doit être la plus grande
+    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.<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 += "<li>le prémaillage de la face de fissure est trop grossier, les mailles à enlever dans le maillage sain "
+      texte += "n'ont pas toutes été détectées.</li></ul>"
+      raise fissError(traceback.extract_stack(),texte)
     logging.debug("surfaces faces fissure étendue, min %s, max %s", minSurf, maxSurf)
     facesPortFissure = facesPartShapeDefautSorted[-1]