X-Git-Url: http://git.salome-platform.org/gitweb/?p=modules%2Fsmesh.git;a=blobdiff_plain;f=src%2FTools%2FblocFissure%2Fgmu%2FcreeZoneDefautDansObjetSain.py;h=24bfeff6cd199d3745b9cc69e532212564235a86;hp=1684dd47cfe353b87b2bc3009501761f55f9ac1a;hb=6cdcd4fb150ef14b95d677a7a8942ae2cfd2ac86;hpb=e8173b4ff130ddb26d165c92403ef847fdfb8be2 diff --git a/src/Tools/blocFissure/gmu/creeZoneDefautDansObjetSain.py b/src/Tools/blocFissure/gmu/creeZoneDefautDansObjetSain.py index 1684dd47c..24bfeff6c 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-2021 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,18 +31,15 @@ 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 """ logging.info('start') - - #smesh.SetCurrentStudy(salome.myStudy) geometrieSaine = geometriesSaines[0] maillageSain = maillagesSains[0] @@ -46,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" @@ -59,21 +75,23 @@ def creeZoneDefautDansObjetSain(geometriesSaines, maillagesSains, shapesFissure, [origShapes, verticesShapes, dmoyen] = \ creeZoneDefautMaillage(maillagesSains, shapeDefaut, tailleDefaut, nomZones, coordsNoeudsFissure) - maillageSain.ExportMED( fichierMaillageSain, 0, SMESH.MED_V2_2, 1 ) + 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) @@ -83,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] -