X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FTools%2FblocFissure%2Fgmu%2FcreeZoneDefautMaillage.py;h=169b0d9636dac8315d55ccacf1a65a2130a18656;hb=0068dfdcb1ee619cb96d637e7384d6e341e71cff;hp=9fcb7d58e340560bf0c86422a59ea769345f8559;hpb=5d68554076bbca0e1e95fb0db215a6c2b84b6c54;p=modules%2Fsmesh.git diff --git a/src/Tools/blocFissure/gmu/creeZoneDefautMaillage.py b/src/Tools/blocFissure/gmu/creeZoneDefautMaillage.py index 9fcb7d58e..169b0d963 100644 --- a/src/Tools/blocFissure/gmu/creeZoneDefautMaillage.py +++ b/src/Tools/blocFissure/gmu/creeZoneDefautMaillage.py @@ -1,9 +1,29 @@ # -*- coding: utf-8 -*- +# Copyright (C) 2014-2020 EDF R&D +# +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License, or (at your option) any later version. +# +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +# import logging -from geomsmesh import geompy +from .geomsmesh import geompy import math -from distance2 import distance2 +from .distance2 import distance2 +import traceback +from .fissError import fissError # ----------------------------------------------------------------------------- # --- zone de defaut extraite du maillage @@ -12,7 +32,7 @@ def creeZoneDefautMaillage(maillagesSains, shapeDefaut, tailleDefaut, nomZones, coordsNoeudsFissure): """ Identification de la zone à remailler, opérations sur le maillage - de l'objet sain + de l'objet sain. La zone à remailler est définie à partir d'un objet géométrique ou à partir d'un jeu de points et d'une distance d'influence. @param maillagesSains : (le maillage de l'objet initial, booleen isHexa) @@ -33,11 +53,11 @@ def creeZoneDefautMaillage(maillagesSains, shapeDefaut, tailleDefaut, isHexa = maillagesSains[1] lists = maillageSain.CreateHoleSkin(tailleDefaut, shapeDefaut, nomZones, coordsNoeudsFissure) - logging.debug("lists=%s", lists) + logging.debug("lists={}".format(lists)) trace = True - origShapes = [] - verticesShapes = [] + origShapes = list() + verticesShapes = list() cumul = 0 # somme des distances carrées entre point ordonnés (taille des arêtes) nb = 0 # nombre d'arêtes évaluées @@ -45,8 +65,8 @@ def creeZoneDefautMaillage(maillagesSains, shapeDefaut, tailleDefaut, for aList in lists: aShape = aList[0] origShapes.append(aShape) - logging.debug(" shapeId %s", aShape) - vertices = [] + logging.debug(" shapeId {}".format(aShape)) + vertices = list() xyz0 = None for inode in range(1, len(aList)): xyz = maillageSain.GetNodeXYZ(aList[inode]) @@ -60,5 +80,12 @@ def creeZoneDefautMaillage(maillagesSains, shapeDefaut, tailleDefaut, verticesShapes.append(vertices) pass + if (nb == 0) : + texte = "La zone à remailler n'est pas détectée correctement.
" + texte += "Cause possible :" + raise fissError(traceback.extract_stack(),texte) + dmoyen = math.sqrt(cumul/nb) # ~ taille de l'arête moyenne du maillage global return origShapes, verticesShapes, dmoyen