Salome HOME
general crack dialog, another error detection
authorPaul RASCLE <paul.rascle@edf.fr>
Mon, 29 Feb 2016 17:09:50 +0000 (18:09 +0100)
committerPaul RASCLE <paul.rascle@edf.fr>
Mon, 29 Feb 2016 17:09:50 +0000 (18:09 +0100)
src/Tools/blocFissure/gmu/identifieElementsDebouchants.py
src/Tools/blocFissure/gmu/partitionneFissureParPipe.py
src/Tools/blocFissure/gmu/restreintFaceFissure.py

index 20c38e9379ab534d7c94aa180cc5a6947f27e422..fb03f94b713a0137f659681dd06c8ac2268778c1 100644 (file)
@@ -100,8 +100,8 @@ def identifieElementsDebouchants(ifil, facesDefaut, partitionPeauFissFond,
       ofp = geompy.BasicProperties(edgesLocSorted[0][2])[0] # distance curviligne centre locPt0
     except:
       texte = "Identification des éléments au débouché du pipe sur la face externe impossible. "
-      texte += "Cause éventuelle : la ligne de fond de fissure comprend un point géométrique coincidant avec la face externe. "
-      texte += "La ligne de fond de fissure doit déboucher franchement de la face externe, et ne doit pas être coupée au niveau de la face"
+      texte += "Cause possible : la ligne de fond de fissure comprend un point géométrique coincidant avec la face externe. "
+      texte += "La ligne de fond de fissure doit déboucher franchement de la face externe, et ne doit pas être coupée au niveau de la face."
       raise fissError(traceback.extract_stack(),texte)
     logging.debug("distance curviligne centre extremite0: %s", ofp)
     p1 = geompy.MakeVertexOnCurveByLength(localEdgeInFondFiss, ofp +lgp, locPt0)
index ca6829f3d135847cb019cbdfb8d291a29f530228..32ae8b3f091073bb1181c89908800b23c0c32deb 100644 (file)
@@ -39,7 +39,7 @@ def partitionneFissureParPipe(shapesFissure, elementsDefaut, rayonPipe):
     pipeFiss = geompy.MakePipe(cercle, fondFissProlonge)
   except:
     texte = "génération du pipe le long de la ligne de fond de fissure prolongée impossible. "
-    texte += "Cause éventuelle : la ligne s'autointersecte lorsqu'on la prolonge."
+    texte += "Cause possible : la ligne s'autointersecte lorsqu'on la prolonge."
     raise fissError(traceback.extract_stack(),texte)
   geomPublish(initLog.debug, pipeFiss, 'pipeFiss')
   partFissPipe = geompy.MakePartition([shapeDefaut, pipeFiss], [], [], [], geompy.ShapeType["FACE"], 0, [], 1)
index 50e867e0cbc3e4739460cde84ca8fbf1cdb99a74..c2a055f8ff1af58fc5d984df34e00ae00ba97901 100644 (file)
@@ -6,6 +6,8 @@ from geomsmesh import geomPublish
 from geomsmesh import geomPublishInFather
 import initLog
 from sortFaces import sortFaces
+import traceback
+from fissError import fissError
 
 def restreintFaceFissure(shapeDefaut, facesDefaut, pointInterne):
   """
@@ -22,7 +24,13 @@ 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. "
+      texte += "Cause possible : 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. "
+      raise fissError(traceback.extract_stack(),texte)
     logging.debug("surfaces faces fissure étendue, min %s, max %s", minSurf, maxSurf)
     facesPortFissure = facesPartShapeDefautSorted[-1]