2014-09-08 18:58:52 +06:00
|
|
|
# -*- coding: utf-8 -*-
|
|
|
|
|
|
|
|
import logging
|
|
|
|
import salome
|
|
|
|
from geomsmesh import geompy
|
|
|
|
import GEOM
|
|
|
|
from geomsmesh import smesh
|
|
|
|
from salome.smesh import smeshBuilder
|
|
|
|
import SMESH
|
|
|
|
import math
|
|
|
|
import bisect
|
|
|
|
|
2014-09-15 01:38:46 +06:00
|
|
|
# from extractionOrientee import extractionOrientee
|
|
|
|
# from extractionOrienteeMulti import extractionOrienteeMulti
|
|
|
|
# from sortFaces import sortFaces
|
|
|
|
#from sortEdges import sortEdges
|
|
|
|
# from eliminateDoubles import eliminateDoubles
|
|
|
|
# from substractSubShapes import substractSubShapes
|
|
|
|
# from produitMixte import produitMixte
|
|
|
|
# from findWireEndVertices import findWireEndVertices
|
|
|
|
#from findWireIntermediateVertices import findWireIntermediateVertices
|
2014-09-08 18:58:52 +06:00
|
|
|
from orderEdgesFromWire import orderEdgesFromWire
|
2014-09-15 01:38:46 +06:00
|
|
|
# from getSubshapeIds import getSubshapeIds
|
2014-09-08 18:58:52 +06:00
|
|
|
from putName import putName
|
2014-09-15 01:38:46 +06:00
|
|
|
# from distance2 import distance2
|
2014-09-08 18:58:52 +06:00
|
|
|
from enleveDefaut import enleveDefaut
|
|
|
|
from shapeSurFissure import shapeSurFissure
|
|
|
|
from regroupeSainEtDefaut import RegroupeSainEtDefaut
|
|
|
|
from triedreBase import triedreBase
|
2014-09-15 01:38:46 +06:00
|
|
|
# from checkDecoupePartition import checkDecoupePartition
|
|
|
|
# from whichSide import whichSide
|
|
|
|
# from whichSideMulti import whichSideMulti
|
|
|
|
#from whichSideVertex import whichSideVertex
|
|
|
|
#from projettePointSurCourbe import projettePointSurCourbe
|
|
|
|
# from prolongeWire import prolongeWire
|
2014-09-08 18:58:52 +06:00
|
|
|
from restreintFaceFissure import restreintFaceFissure
|
|
|
|
from partitionneFissureParPipe import partitionneFissureParPipe
|
|
|
|
from construitPartitionsPeauFissure import construitPartitionsPeauFissure
|
|
|
|
from compoundFromList import compoundFromList
|
|
|
|
from identifieElementsGeometriquesPeau import identifieElementsGeometriquesPeau
|
2014-09-15 01:38:46 +06:00
|
|
|
from identifieFacesEdgesFissureExterne import identifieFacesEdgesFissureExterne
|
|
|
|
from calculePointsAxiauxPipe import calculePointsAxiauxPipe
|
|
|
|
from elimineExtremitesPipe import elimineExtremitesPipe
|
|
|
|
from construitEdgesRadialesDebouchantes import construitEdgesRadialesDebouchantes
|
|
|
|
from creePointsPipePeau import creePointsPipePeau
|
|
|
|
from ajustePointsEdgePipeFissure import ajustePointsEdgePipeFissure
|
|
|
|
from construitMaillagePipe import construitMaillagePipe
|
|
|
|
from mailleAretesEtJonction import mailleAretesEtJonction
|
|
|
|
from mailleFacesFissure import mailleFacesFissure
|
|
|
|
from mailleFacesPeau import mailleFacesPeau
|
2014-09-08 18:58:52 +06:00
|
|
|
|
|
|
|
# -----------------------------------------------------------------------------
|
|
|
|
# --- procédure complète fissure générale
|
|
|
|
|
|
|
|
def construitFissureGenerale(maillagesSains,
|
|
|
|
shapesFissure, shapeFissureParams,
|
|
|
|
maillageFissureParams, elementsDefaut, step=-1):
|
|
|
|
"""
|
|
|
|
TODO: a completer
|
|
|
|
"""
|
|
|
|
logging.info('start')
|
|
|
|
|
|
|
|
shapeDefaut = shapesFissure[0] # faces de fissure, débordant
|
|
|
|
fondFiss = shapesFissure[4] # groupe d'edges de fond de fissure
|
|
|
|
|
|
|
|
rayonPipe = shapeFissureParams['rayonPipe']
|
|
|
|
if shapeFissureParams.has_key('lenSegPipe'):
|
|
|
|
lenSegPipe = shapeFissureParams['lenSegPipe']
|
|
|
|
else:
|
|
|
|
lenSegPipe = rayonPipe
|
|
|
|
|
|
|
|
nomRep = maillageFissureParams['nomRep']
|
|
|
|
nomFicSain = maillageFissureParams['nomFicSain']
|
|
|
|
nomFicFissure = maillageFissureParams['nomFicFissure']
|
|
|
|
|
|
|
|
nbsegRad = maillageFissureParams['nbsegRad'] # nombre de couches selon un rayon du pipe
|
|
|
|
nbsegCercle = maillageFissureParams['nbsegCercle'] # nombre de secteur dans un cercle du pipe
|
|
|
|
areteFaceFissure = maillageFissureParams['areteFaceFissure']
|
|
|
|
|
|
|
|
pointIn_x = 0.0
|
|
|
|
pointIn_y = 0.0
|
|
|
|
pointIn_z = 0.0
|
|
|
|
isPointInterne = False
|
|
|
|
if shapeFissureParams.has_key('pointIn_x'):
|
|
|
|
pointIn_x = shapeFissureParams['pointIn_x']
|
|
|
|
isPointInterne = True
|
|
|
|
if shapeFissureParams.has_key('pointIn_y'):
|
|
|
|
pointIn_y = shapeFissureParams['pointIn_y']
|
|
|
|
isPointInterne = True
|
|
|
|
if shapeFissureParams.has_key('pointIn_z'):
|
|
|
|
pointIn_z = shapeFissureParams['pointIn_z']
|
|
|
|
isPointInterne = True
|
|
|
|
if isPointInterne:
|
|
|
|
pointInterne = geompy.MakeVertex(pointIn_x, pointIn_y, pointIn_z)
|
|
|
|
else:
|
|
|
|
pointInterne = None
|
|
|
|
|
|
|
|
#fichierMaillageSain = nomRep + '/' + nomFicSain + '.med'
|
|
|
|
fichierMaillageFissure = nomRep + '/' + nomFicFissure + '.med'
|
|
|
|
|
|
|
|
# fillings des faces en peau
|
2014-09-15 01:38:46 +06:00
|
|
|
facesDefaut = elementsDefaut[0]
|
2014-09-08 18:58:52 +06:00
|
|
|
#centresDefaut = elementsDefaut[1]
|
|
|
|
#normalsDefaut = elementsDefaut[2]
|
|
|
|
#extrusionsDefaut = elementsDefaut[3]
|
|
|
|
dmoyen = elementsDefaut[4]
|
2014-09-15 01:38:46 +06:00
|
|
|
bordsPartages = elementsDefaut[5]
|
|
|
|
#fillconts = elementsDefaut[6]
|
|
|
|
#idFilToCont = elementsDefaut[7]
|
2014-09-08 18:58:52 +06:00
|
|
|
maillageSain = elementsDefaut[8]
|
|
|
|
internalBoundary = elementsDefaut[9]
|
|
|
|
zoneDefaut = elementsDefaut[10]
|
|
|
|
zoneDefaut_skin = elementsDefaut[11]
|
|
|
|
zoneDefaut_internalFaces = elementsDefaut[12]
|
|
|
|
zoneDefaut_internalEdges = elementsDefaut[13]
|
2014-09-15 01:38:46 +06:00
|
|
|
#edgeFondExt = elementsDefaut[14]
|
2014-09-08 18:58:52 +06:00
|
|
|
centreFondFiss = elementsDefaut[15]
|
2014-09-15 01:38:46 +06:00
|
|
|
#tgtCentre = elementsDefaut[16]
|
2014-09-08 18:58:52 +06:00
|
|
|
|
|
|
|
O, OX, OY, OZ = triedreBase()
|
|
|
|
|
|
|
|
# --- restriction de la face de fissure au domaine solide :
|
|
|
|
# partition face fissure étendue par fillings, on garde la face interne
|
|
|
|
|
|
|
|
facesPortFissure = restreintFaceFissure(shapeDefaut, facesDefaut, pointInterne)
|
|
|
|
|
|
|
|
# --- pipe de fond de fissure, prolongé, partition face fissure par pipe
|
|
|
|
# identification des edges communes pipe et face fissure
|
|
|
|
|
|
|
|
(fissPipe, edgesPipeFiss, edgesFondFiss, wirePipeFiss, wireFondFiss) = partitionneFissureParPipe(shapesFissure, elementsDefaut, rayonPipe)
|
|
|
|
edgesFondFiss, edgesIdByOrientation = orderEdgesFromWire(wireFondFiss)
|
|
|
|
for i,edge in enumerate(edgesFondFiss):
|
|
|
|
geompy.addToStudyInFather(wireFondFiss, edge, "edgeFondFiss%d"%i)
|
|
|
|
|
|
|
|
# --- peau et face de fissure
|
|
|
|
#
|
|
|
|
# --- partition peau défaut - face de fissure prolongée - wire de fond de fissure prolongée
|
|
|
|
# il peut y avoir plusieurs faces externes, dont certaines sont découpées par la fissure
|
|
|
|
# liste de faces externes : facesDefaut
|
|
|
|
# liste de partitions face externe - fissure : partitionPeauFissFond (None quand pas d'intersection)
|
|
|
|
|
|
|
|
partitionsPeauFissFond = construitPartitionsPeauFissure(facesDefaut, fissPipe)
|
|
|
|
|
|
|
|
# --- arêtes vives détectées (dans quadranglesToShapeNoCorner
|
|
|
|
# et quadranglesToShapeWithCorner)
|
|
|
|
|
|
|
|
aretesVivesC = compoundFromList(bordsPartages, "areteVive")
|
2014-09-15 01:38:46 +06:00
|
|
|
aretesVivesCoupees = [] # ensembles des arêtes vives identifiées sur les faces de peau dans l'itération sur partitionsPeauFissFond
|
|
|
|
|
2014-09-08 18:58:52 +06:00
|
|
|
# --- inventaire des faces de peau coupées par la fissure
|
|
|
|
# pour chaque face de peau : 0, 1 ou 2 faces débouchante du fond de fissure
|
|
|
|
# 0, 1 ou plus edges de la face de fissure externe au pipe
|
|
|
|
|
|
|
|
nbFacesFilling = len(partitionsPeauFissFond)
|
|
|
|
|
|
|
|
ptEdgeFond = [ [] for i in range(nbFacesFilling)] # pour chaque face [points edge fond de fissure aux débouchés du pipe]
|
2014-09-15 01:38:46 +06:00
|
|
|
facesPipePeau = [ [] for i in range(nbFacesFilling)] # pour chaque face [faces du pipe débouchantes]
|
|
|
|
edgeRadFacePipePeau = [ [] for i in range(nbFacesFilling)] # pour chaque face [edge radiale des faces du pipe débouchantes ]
|
2014-09-08 18:58:52 +06:00
|
|
|
fsFissuExt = [ [] for i in range(nbFacesFilling)] # pour chaque face [faces de fissure externes au pipe]
|
|
|
|
edFisExtPe = [ [] for i in range(nbFacesFilling)] # pour chaque face [edge en peau des faces de fissure externes (pas subshape facePeau)]
|
|
|
|
edFisExtPi = [ [] for i in range(nbFacesFilling)] # pour chaque face [edge commun au pipe des faces de fissure externes]
|
|
|
|
facesPeaux = [None for i in range(nbFacesFilling)] # pour chaque face : la face de peau finale a mailler (percée des faces débouchantes)
|
|
|
|
edCircPeau = [ [] for i in range(nbFacesFilling)] # pour chaque face de peau : [subshape edge circulaire aux débouchés du pipe]
|
|
|
|
ptCircPeau = [ [] for i in range(nbFacesFilling)] # pour chaque face de peau : [subshape point sur edge circulaire aux débouchés du pipe]
|
|
|
|
gpedgeBord = [None for i in range(nbFacesFilling)] # pour chaque face de peau : groupe subshape des edges aux bords liés à la partie saine
|
|
|
|
gpedgeVifs = [None for i in range(nbFacesFilling)] # pour chaque face de peau : groupes subshape des edges aux arêtes vives entre fillings
|
|
|
|
edFissPeau = [ [] for i in range(nbFacesFilling)] # pour chaque face de peau : [subshape edge en peau des faces de fissure externes]
|
|
|
|
ptFisExtPi = [ [] for i in range(nbFacesFilling)] # pour chaque face de peau : [point commun edFissPeau edCircPeau]
|
|
|
|
|
|
|
|
for ifil, partitionPeauFissFond in enumerate(partitionsPeauFissFond):
|
|
|
|
if partitionPeauFissFond is not None:
|
|
|
|
dataPPFF,aretesVivesCoupees = identifieElementsGeometriquesPeau(ifil, partitionPeauFissFond, edgesPipeFiss,
|
|
|
|
edgesFondFiss, wireFondFiss, aretesVivesC,
|
|
|
|
facesDefaut, centreFondFiss, rayonPipe,
|
2014-09-15 01:38:46 +06:00
|
|
|
aretesVivesCoupees)
|
2014-09-08 18:58:52 +06:00
|
|
|
ptEdgeFond[ifil] = dataPPFF['endsEdgeFond']
|
2014-09-15 01:38:46 +06:00
|
|
|
facesPipePeau[ifil] = dataPPFF['facesPipePeau']
|
|
|
|
edgeRadFacePipePeau[ifil] = dataPPFF['edgeRadFacePipePeau']
|
2014-09-08 18:58:52 +06:00
|
|
|
fsFissuExt[ifil] = dataPPFF['facesFissExt']
|
|
|
|
edFisExtPe[ifil] = dataPPFF['edgesFissExtPeau']
|
|
|
|
edFisExtPi[ifil] = dataPPFF['edgesFissExtPipe']
|
|
|
|
facesPeaux[ifil] = dataPPFF['facePeau']
|
|
|
|
edCircPeau[ifil] = dataPPFF['edgesCircPeau']
|
|
|
|
ptCircPeau[ifil] = dataPPFF['verticesCircPeau']
|
|
|
|
gpedgeBord[ifil] = dataPPFF['groupEdgesBordPeau']
|
|
|
|
gpedgeVifs[ifil] = dataPPFF['bordsVifs']
|
|
|
|
edFissPeau[ifil] = dataPPFF['edgesFissurePeau']
|
|
|
|
ptFisExtPi[ifil] = dataPPFF['verticesPipePeau']
|
|
|
|
|
|
|
|
|
|
|
|
for i, avc in enumerate(aretesVivesCoupees):
|
|
|
|
name = "areteViveCoupee%d"%i
|
|
|
|
geompy.addToStudy(avc, name)
|
|
|
|
|
|
|
|
# --- identification des faces et edges de fissure externe pour maillage
|
|
|
|
|
2014-09-15 01:38:46 +06:00
|
|
|
(faceFissureExterne, edgesPipeFissureExterneC,
|
|
|
|
wirePipeFissureExterne, edgesPeauFissureExterneC) = identifieFacesEdgesFissureExterne(fsFissuExt, edFisExtPe,
|
|
|
|
edFisExtPi, edgesPipeFiss)
|
|
|
|
|
2014-09-08 18:58:52 +06:00
|
|
|
# --- preparation maillage du pipe :
|
2014-09-15 01:38:46 +06:00
|
|
|
# - détections des points a respecter : jonction des edges/faces constituant la face de fissure externe au pipe
|
2014-09-08 18:58:52 +06:00
|
|
|
# - points sur les edges de fond de fissure et edges pipe/face fissure,
|
|
|
|
# - vecteurs tangents au fond de fissure (normal au disque maillé)
|
|
|
|
|
2014-09-15 01:38:46 +06:00
|
|
|
(centres, gptsdisks, raydisks) = calculePointsAxiauxPipe(edgesFondFiss, edgesIdByOrientation, facesDefaut,
|
|
|
|
centreFondFiss, wireFondFiss, wirePipeFiss,
|
|
|
|
lenSegPipe, rayonPipe, nbsegCercle, nbsegRad)
|
|
|
|
|
2014-09-08 18:58:52 +06:00
|
|
|
# --- recherche des points en trop (externes au volume à remailler)
|
|
|
|
# - on associe chaque extrémité du pipe à une face filling
|
|
|
|
# - on part des disques aux extrémités du pipe
|
|
|
|
# - pour chaque disque, on prend les vertices de géométrie,
|
|
|
|
# on marque leur position relative à la face.
|
|
|
|
# - on s'arrete quand tous les noeuds sont dedans
|
|
|
|
|
2014-09-15 01:38:46 +06:00
|
|
|
(idFillingFromBout, idisklim, idiskout) = elimineExtremitesPipe(ptEdgeFond, facesDefaut, centres, gptsdisks, nbsegCercle)
|
2014-09-08 18:58:52 +06:00
|
|
|
|
2014-09-15 01:38:46 +06:00
|
|
|
# --- construction des listes d'edges radiales sur chaque extrémité débouchante
|
2014-09-08 18:58:52 +06:00
|
|
|
|
2014-09-15 01:38:46 +06:00
|
|
|
(listEdges, idFacesDebouchantes) = construitEdgesRadialesDebouchantes(idisklim, idiskout, gptsdisks, raydisks,
|
|
|
|
facesPipePeau, edgeRadFacePipePeau, nbsegCercle)
|
2014-09-08 18:58:52 +06:00
|
|
|
|
|
|
|
# --- création des points du maillage du pipe sur la face de peau
|
|
|
|
|
2014-09-15 01:38:46 +06:00
|
|
|
(gptsdisks, idisklim) = creePointsPipePeau(listEdges, idFacesDebouchantes, idFillingFromBout,
|
|
|
|
ptEdgeFond, ptFisExtPi, edCircPeau, gptsdisks, idisklim, nbsegRad)
|
2014-09-08 18:58:52 +06:00
|
|
|
|
2014-09-15 01:38:46 +06:00
|
|
|
# --- ajustement precis des points sur edgesPipeFissureExterneC
|
|
|
|
|
|
|
|
gptsdisks = ajustePointsEdgePipeFissure(edgesPipeFissureExterneC, wirePipeFissureExterne, gptsdisks, idisklim)
|
2014-09-08 18:58:52 +06:00
|
|
|
|
2014-09-15 01:38:46 +06:00
|
|
|
# --- maillage effectif du pipe
|
2014-09-08 18:58:52 +06:00
|
|
|
|
2014-09-15 01:38:46 +06:00
|
|
|
(meshPipe, meshPipeGroups, edgesCircPipeGroup) = construitMaillagePipe(gptsdisks, idisklim, nbsegCercle, nbsegRad)
|
|
|
|
|
2014-09-08 18:58:52 +06:00
|
|
|
# --- edges de bord, faces défaut à respecter
|
|
|
|
|
2014-09-15 01:38:46 +06:00
|
|
|
(internalBoundary, bordsLibres, grpAretesVives) = mailleAretesEtJonction(internalBoundary, aretesVivesCoupees, dmoyen)
|
2014-09-08 18:58:52 +06:00
|
|
|
|
|
|
|
# --- maillage faces de fissure
|
|
|
|
|
2014-09-15 01:38:46 +06:00
|
|
|
(meshFaceFiss, grpFaceFissureExterne,
|
|
|
|
grpEdgesPeauFissureExterne, grpEdgesPipeFissureExterne) = mailleFacesFissure(faceFissureExterne, edgesPipeFissureExterneC, edgesPeauFissureExterneC,
|
|
|
|
meshPipeGroups, areteFaceFissure, rayonPipe, nbsegRad)
|
2014-09-08 18:58:52 +06:00
|
|
|
|
|
|
|
# --- maillage faces de peau
|
|
|
|
|
2014-09-15 01:38:46 +06:00
|
|
|
meshesFacesPeau = mailleFacesPeau(partitionsPeauFissFond, idFillingFromBout, facesDefaut,
|
|
|
|
facesPeaux, edCircPeau, ptCircPeau, gpedgeBord, gpedgeVifs, edFissPeau,
|
|
|
|
bordsLibres, grpEdgesPeauFissureExterne, grpAretesVives,
|
|
|
|
edgesCircPipeGroup, dmoyen, rayonPipe, nbsegRad)
|
2014-09-08 18:58:52 +06:00
|
|
|
|
|
|
|
# --- regroupement des maillages du défaut
|
|
|
|
|
|
|
|
listMeshes = [internalBoundary.GetMesh(),
|
|
|
|
meshPipe.GetMesh(),
|
|
|
|
meshFaceFiss.GetMesh()]
|
|
|
|
for mp in meshesFacesPeau:
|
|
|
|
listMeshes.append(mp.GetMesh())
|
|
|
|
|
|
|
|
meshBoiteDefaut = smesh.Concatenate(listMeshes, 1, 1, 1e-05,False)
|
|
|
|
# pour aider l'algo hexa-tetra à ne pas mettre de pyramides à l'exterieur des volumes repliés sur eux-mêmes
|
|
|
|
# on désigne les faces de peau en quadrangles par le groupe "skinFaces"
|
|
|
|
group_faceFissOutPipe = None
|
|
|
|
group_faceFissInPipe = None
|
|
|
|
groups = meshBoiteDefaut.GetGroups()
|
|
|
|
for grp in groups:
|
|
|
|
if grp.GetType() == SMESH.FACE:
|
|
|
|
if grp.GetName() == "fisOutPi":
|
|
|
|
group_faceFissOutPipe = grp
|
|
|
|
elif grp.GetName() == "fisInPi":
|
|
|
|
group_faceFissInPipe = grp
|
|
|
|
|
|
|
|
# le maillage NETGEN ne passe pas toujours ==> utiliser GHS3D
|
|
|
|
distene=True
|
|
|
|
if distene:
|
|
|
|
algo3d = meshBoiteDefaut.Tetrahedron(algo=smeshBuilder.GHS3D)
|
|
|
|
else:
|
|
|
|
algo3d = meshBoiteDefaut.Tetrahedron(algo=smeshBuilder.NETGEN)
|
|
|
|
hypo3d = algo3d.MaxElementVolume(1000.0)
|
|
|
|
putName(algo3d.GetSubMesh(), "boiteDefaut")
|
|
|
|
putName(algo3d, "algo3d_boiteDefaut")
|
|
|
|
isDone = meshBoiteDefaut.Compute()
|
|
|
|
putName(meshBoiteDefaut, "boiteDefaut")
|
|
|
|
logging.info("meshBoiteDefaut fini")
|
|
|
|
|
|
|
|
faceFissure = meshBoiteDefaut.GetMesh().UnionListOfGroups( [ group_faceFissOutPipe, group_faceFissInPipe ], 'FACE1' )
|
|
|
|
maillageSain = enleveDefaut(maillageSain, zoneDefaut, zoneDefaut_skin,
|
|
|
|
zoneDefaut_internalFaces, zoneDefaut_internalEdges)
|
|
|
|
putName(maillageSain, nomFicSain+"_coupe")
|
|
|
|
extrusionFaceFissure, normfiss = shapeSurFissure(facesPortFissure)
|
|
|
|
maillageComplet = RegroupeSainEtDefaut(maillageSain, meshBoiteDefaut,
|
|
|
|
None, None, 'COMPLET', normfiss)
|
|
|
|
|
|
|
|
logging.info("conversion quadratique")
|
|
|
|
maillageComplet.ConvertToQuadratic( 1 )
|
|
|
|
logging.info("groupes")
|
|
|
|
groups = maillageComplet.GetGroups()
|
|
|
|
grps = [ grp for grp in groups if grp.GetName() == 'FONDFISS']
|
|
|
|
fond = maillageComplet.GetMesh().CreateDimGroup( grps, SMESH.NODE, 'FONDFISS' )
|
|
|
|
|
|
|
|
logging.info("réorientation face de fissure FACE1")
|
|
|
|
grps = [ grp for grp in groups if grp.GetName() == 'FACE1']
|
|
|
|
nb = maillageComplet.Reorient2D( grps[0], normfiss, grps[0].GetID(1))
|
|
|
|
|
|
|
|
logging.info("réorientation face de fissure FACE2")
|
|
|
|
plansim = geompy.MakePlane(O, normfiss, 10000)
|
|
|
|
fissnorm = geompy.MakeMirrorByPlane(normfiss, plansim)
|
|
|
|
grps = [ grp for grp in groups if grp.GetName() == 'FACE2']
|
|
|
|
nb = maillageComplet.Reorient2D( grps[0], fissnorm, grps[0].GetID(1))
|
|
|
|
fond = maillageComplet.GetMesh().CreateDimGroup( grps, SMESH.NODE, 'FACE2' )
|
|
|
|
|
|
|
|
logging.info("export maillage fini")
|
|
|
|
maillageComplet.ExportMED( fichierMaillageFissure, 0, SMESH.MED_V2_2, 1 )
|
|
|
|
putName(maillageComplet, nomFicFissure)
|
|
|
|
logging.info("fichier maillage fissure %s", fichierMaillageFissure)
|
|
|
|
|
|
|
|
if salome.sg.hasDesktop():
|
|
|
|
salome.sg.updateObjBrowser(1)
|
|
|
|
|
|
|
|
logging.info("maillage fissure fini")
|
|
|
|
|
|
|
|
return maillageComplet
|