X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FTools%2FblocFissure%2Fgmu%2FcreeZoneDefautDansObjetSain.py;h=944baa0199e06d1d63a16097c716dd1655ddb42b;hb=d9f4b53e489dd5857db264ede6acded7b076c9f1;hp=a1cd1e710f6535d45e7b4af6b60091d4e86ac9e5;hpb=8d297d6698f361d4f2dde723050bcfbaea050920;p=modules%2Fsmesh.git diff --git a/src/Tools/blocFissure/gmu/creeZoneDefautDansObjetSain.py b/src/Tools/blocFissure/gmu/creeZoneDefautDansObjetSain.py index a1cd1e710..944baa019 100644 --- a/src/Tools/blocFissure/gmu/creeZoneDefautDansObjetSain.py +++ b/src/Tools/blocFissure/gmu/creeZoneDefautDansObjetSain.py @@ -1,9 +1,29 @@ # -*- coding: utf-8 -*- +# Copyright (C) 2014-2022 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 +# +"""TODO: a compléter""" + +import os import logging + from .geomsmesh import smesh -import SMESH -import SALOMEDS from .creeZoneDefautMaillage import creeZoneDefautMaillage from .peauInterne import peauInterne @@ -11,12 +31,11 @@ from .quadranglesToShapeNoCorner import quadranglesToShapeNoCorner from .creeZoneDefautFilling import creeZoneDefautFilling from .creeZoneDefautGeom import creeZoneDefautGeom from .getCentreFondFiss import getCentreFondFiss +from .putName import putName -# ----------------------------------------------------------------------------- -# --- - -def creeZoneDefautDansObjetSain(geometriesSaines, maillagesSains, shapesFissure, - shapeFissureParams, maillageFissureParams): +def creeZoneDefautDansObjetSain(geometriesSaines, maillagesSains, shapesFissure, \ + shapeFissureParams, maillageFissureParams, \ + nro_cas=None): """ #TODO: a compléter """ @@ -44,12 +63,11 @@ def creeZoneDefautDansObjetSain(geometriesSaines, maillagesSains, shapesFissure, nomRep = maillageFissureParams['nomRep'] nomFicSain = maillageFissureParams['nomFicSain'] - fichierMaillageSain = nomRep + '/' + nomFicSain + '.med' - + fichierMaillageSain = os.path.join (nomRep , '{}.med'.format(nomFicSain)) + # --- centre de fond de fissure et tangente - + edgeFondExt, centreFondFiss, tgtCentre = getCentreFondFiss(shapesFissure) - # --- zone de défaut nomZones = "zoneDefaut" @@ -60,18 +78,20 @@ def creeZoneDefautDansObjetSain(geometriesSaines, maillagesSains, shapesFissure, maillageSain.ExportMED(fichierMaillageSain) logging.debug("fichier maillage sain %s", fichierMaillageSain) [maillageSain, internalBoundary, zoneDefaut, zoneDefaut_skin, zoneDefaut_internalFaces, zoneDefaut_internalEdges] = \ - peauInterne(fichierMaillageSain, shapeDefaut, nomZones) + peauInterne(fichierMaillageSain, shapeDefaut, nomZones, \ + nro_cas) - facesDefaut = [] - centresDefaut = [] - normalsDefaut =[] - extrusionsDefaut = [] + facesDefaut = list() + centresDefaut = list() + normalsDefaut = list() + extrusionsDefaut = list() isPlane = False if isHexa and not isPlane: meshQuad = smesh.CopyMesh( zoneDefaut_skin, 'meshQuad', 0, 0) - - fillings, noeuds_bords, bordsPartages, fillconts, idFilToCont = quadranglesToShapeNoCorner(meshQuad, shapeFissureParams, centreFondFiss) - + putName(meshQuad, "meshQuad", i_pref=nro_cas) + + fillings, _, bordsPartages, fillconts, idFilToCont = quadranglesToShapeNoCorner(meshQuad, shapeFissureParams, centreFondFiss) + for filling in fillings: [faceDefaut, centreDefaut, normalDefaut, extrusionDefaut] = \ creeZoneDefautFilling(filling, shapeDefaut, lgExtrusion) @@ -81,14 +101,15 @@ def creeZoneDefautDansObjetSain(geometriesSaines, maillagesSains, shapesFissure, extrusionsDefaut.append(extrusionDefaut) else: [facesDefaut, centreDefaut, normalDefaut, extrusionDefaut] = \ - creeZoneDefautGeom( geometrieSaine, shapeDefaut, origShapes, verticesShapes, dmoyen, lgExtrusion) - bordsPartages = [] - for face in facesDefaut: + creeZoneDefautGeom( geometrieSaine, shapeDefaut, origShapes, verticesShapes, lgExtrusion) + bordsPartages = list() + for _ in facesDefaut: bordsPartages.append([None,None]) # TODO : traitement des arêtes vives ? fillconts = facesDefaut idFilToCont = list(range(len(facesDefaut))) - return [facesDefaut, centresDefaut, normalsDefaut, extrusionsDefaut, dmoyen, bordsPartages, fillconts, idFilToCont, - maillageSain, internalBoundary, zoneDefaut, zoneDefaut_skin, zoneDefaut_internalFaces, zoneDefaut_internalEdges, + return [facesDefaut, centresDefaut, normalsDefaut, extrusionsDefaut, \ + dmoyen, bordsPartages, fillconts, idFilToCont, \ + maillageSain, internalBoundary, \ + zoneDefaut, zoneDefaut_skin, zoneDefaut_internalFaces, zoneDefaut_internalEdges, \ edgeFondExt, centreFondFiss, tgtCentre] -