mirror of
https://git.salome-platform.org/gitpub/modules/smesh.git
synced 2024-12-26 17:30:35 +05:00
Tri dans le repérage des arêtes de peau
This commit is contained in:
parent
89b205395d
commit
e2f6c81304
@ -132,8 +132,8 @@ def construitFissureGenerale(shapesFissure, shapeFissureParams, \
|
|||||||
|
|
||||||
# --- inventaire des faces de peau coupées par la fissure
|
# --- inventaire des faces de peau coupées par la fissure
|
||||||
|
|
||||||
ptEdgeFond, fsFissuExt, edFisExtPe, edFisExtPi, \
|
ptEdgeFond, fsFissuExt, edFisExtPe, edFisExtPi, facesPeaux, edCircPeau, \
|
||||||
facesPeaux, edCircPeau, ptCircPeau, gpedgeBord, gpedgeVifs, edFissPeau, ptFisExtPi, \
|
gpedgeBord, gpedgeVifs, edFissPeau, ptFisExtPi, \
|
||||||
edgeRadFacePipePeau, facesPipePeau = \
|
edgeRadFacePipePeau, facesPipePeau = \
|
||||||
construitFissureGenerale_b( partitionsPeauFissFond, \
|
construitFissureGenerale_b( partitionsPeauFissFond, \
|
||||||
edgesPipeFiss, edgesFondFiss, wireFondFiss, aretesVivesC, \
|
edgesPipeFiss, edgesFondFiss, wireFondFiss, aretesVivesC, \
|
||||||
@ -201,7 +201,7 @@ def construitFissureGenerale(shapesFissure, shapeFissureParams, \
|
|||||||
# --- maillage faces de peau
|
# --- maillage faces de peau
|
||||||
|
|
||||||
meshesFacesPeau = mailleFacesPeau(partitionsPeauFissFond, idFillingFromBout, facesDefaut, \
|
meshesFacesPeau = mailleFacesPeau(partitionsPeauFissFond, idFillingFromBout, facesDefaut, \
|
||||||
facesPeaux, edCircPeau, ptCircPeau, gpedgeBord, gpedgeVifs, edFissPeau, \
|
facesPeaux, edCircPeau, gpedgeBord, gpedgeVifs, edFissPeau, \
|
||||||
bordsLibres, grpEdgesPeauFissureExterne, grpAretesVives, \
|
bordsLibres, grpEdgesPeauFissureExterne, grpAretesVives, \
|
||||||
edgesCircPipeGroup, dmoyen, rayonPipe, nbsegRad, \
|
edgesCircPipeGroup, dmoyen, rayonPipe, nbsegRad, \
|
||||||
mailleur, nro_cas)
|
mailleur, nro_cas)
|
||||||
|
@ -50,7 +50,6 @@ pour chaque face de peau : 0, 1 ou 2 faces débouchante du fond de fissure
|
|||||||
edFisExtPi = [ list() for _ in range(nbFacesFilling)] # pour chaque face [edge commun au pipe des faces de fissure externes]
|
edFisExtPi = [ list() for _ in range(nbFacesFilling)] # pour chaque face [edge commun au pipe des faces de fissure externes]
|
||||||
facesPeaux = [None for _ in range(nbFacesFilling)] # pour chaque face : la face de peau finale a mailler (percée des faces débouchantes)
|
facesPeaux = [None for _ in range(nbFacesFilling)] # pour chaque face : la face de peau finale a mailler (percée des faces débouchantes)
|
||||||
edCircPeau = [ list() for _ in range(nbFacesFilling)] # pour chaque face de peau : [subshape edge circulaire aux débouchés du pipe]
|
edCircPeau = [ list() for _ in range(nbFacesFilling)] # pour chaque face de peau : [subshape edge circulaire aux débouchés du pipe]
|
||||||
ptCircPeau = [ list() for _ in range(nbFacesFilling)] # pour chaque face de peau : [subshape point sur edge circulaire aux débouchés du pipe]
|
|
||||||
gpedgeBord = [None for _ in range(nbFacesFilling)] # pour chaque face de peau : groupe subshape des edges aux bords liés à la partie saine
|
gpedgeBord = [None for _ in range(nbFacesFilling)] # pour chaque face de peau : groupe subshape des edges aux bords liés à la partie saine
|
||||||
gpedgeVifs = [None for _ in range(nbFacesFilling)] # pour chaque face de peau : groupes subshape des edges aux arêtes vives entre fillings
|
gpedgeVifs = [None for _ in range(nbFacesFilling)] # pour chaque face de peau : groupes subshape des edges aux arêtes vives entre fillings
|
||||||
edFissPeau = [ list() for _ in range(nbFacesFilling)] # pour chaque face de peau : [subshape edge en peau des faces de fissure externes]
|
edFissPeau = [ list() for _ in range(nbFacesFilling)] # pour chaque face de peau : [subshape edge en peau des faces de fissure externes]
|
||||||
@ -70,7 +69,6 @@ pour chaque face de peau : 0, 1 ou 2 faces débouchante du fond de fissure
|
|||||||
edFisExtPi[ifil] = dataPPFF['edgesFissExtPipe']
|
edFisExtPi[ifil] = dataPPFF['edgesFissExtPipe']
|
||||||
facesPeaux[ifil] = dataPPFF['facePeau']
|
facesPeaux[ifil] = dataPPFF['facePeau']
|
||||||
edCircPeau[ifil] = dataPPFF['edgesCircPeau']
|
edCircPeau[ifil] = dataPPFF['edgesCircPeau']
|
||||||
ptCircPeau[ifil] = dataPPFF['verticesCircPeau']
|
|
||||||
gpedgeBord[ifil] = dataPPFF['groupEdgesBordPeau']
|
gpedgeBord[ifil] = dataPPFF['groupEdgesBordPeau']
|
||||||
gpedgeVifs[ifil] = dataPPFF['bordsVifs']
|
gpedgeVifs[ifil] = dataPPFF['bordsVifs']
|
||||||
edFissPeau[ifil] = dataPPFF['edgesFissurePeau']
|
edFissPeau[ifil] = dataPPFF['edgesFissurePeau']
|
||||||
@ -87,5 +85,5 @@ pour chaque face de peau : 0, 1 ou 2 faces débouchante du fond de fissure
|
|||||||
geomPublish(initLog.debug, avc, name, nro_cas)
|
geomPublish(initLog.debug, avc, name, nro_cas)
|
||||||
|
|
||||||
return ptEdgeFond, fsFissuExt, edFisExtPe, edFisExtPi, facesPeaux, edCircPeau, \
|
return ptEdgeFond, fsFissuExt, edFisExtPe, edFisExtPi, facesPeaux, edCircPeau, \
|
||||||
ptCircPeau, gpedgeBord, gpedgeVifs, edFissPeau, ptFisExtPi, \
|
gpedgeBord, gpedgeVifs, edFissPeau, ptFisExtPi, \
|
||||||
edgeRadFacePipePeau, facesPipePeau
|
edgeRadFacePipePeau, facesPipePeau
|
||||||
|
@ -57,6 +57,6 @@ def identifieEdgesPeau(edgesFissExtPipe, verticesPipePeau, facePeau, facesPeauSo
|
|||||||
# --- edges de la face de peau partagées avec la face de fissure
|
# --- edges de la face de peau partagées avec la face de fissure
|
||||||
edgesFissurePeau = identifieEdgesPeau_c(verticesPipePeau, facePeau, edgesListees, verticesCircPeau)
|
edgesFissurePeau = identifieEdgesPeau_c(verticesPipePeau, facePeau, edgesListees, verticesCircPeau)
|
||||||
|
|
||||||
return (endsEdgeFond, facesPipePeau, edgeRadFacePipePeau,
|
return (endsEdgeFond, facesPipePeau, edgeRadFacePipePeau, \
|
||||||
edgesCircPeau, verticesCircPeau, groupEdgesBordPeau,
|
edgesCircPeau, groupEdgesBordPeau, \
|
||||||
bordsVifs, edgesFissurePeau, aretesVivesCoupees)
|
bordsVifs, edgesFissurePeau, aretesVivesCoupees)
|
||||||
|
@ -32,6 +32,7 @@ def identifieEdgesPeau_a(edgesFissExtPipe, facePeau, facesPeauSorted, edgesPeauF
|
|||||||
nro_cas=None):
|
nro_cas=None):
|
||||||
"""Identification précise des edges et disques des faces de peau selon index extremité fissure"""
|
"""Identification précise des edges et disques des faces de peau selon index extremité fissure"""
|
||||||
logging.info('start')
|
logging.info('start')
|
||||||
|
logging.info("Traitement des arêtes de '%s'", facePeau.GetName())
|
||||||
|
|
||||||
for face in facesPeauSorted[:-1]: # la ou les faces débouchantes, pas la grande face de peau
|
for face in facesPeauSorted[:-1]: # la ou les faces débouchantes, pas la grande face de peau
|
||||||
logging.debug("examen face debouchante circulaire")
|
logging.debug("examen face debouchante circulaire")
|
||||||
@ -46,7 +47,6 @@ def identifieEdgesPeau_a(edgesFissExtPipe, facePeau, facesPeauSorted, edgesPeauF
|
|||||||
sharedVertices = geompy.GetSharedShapesMulti([face, edgesPeauFondIn[j_aux_0]], geompy.ShapeType["VERTEX"])
|
sharedVertices = geompy.GetSharedShapesMulti([face, edgesPeauFondIn[j_aux_0]], geompy.ShapeType["VERTEX"])
|
||||||
nameFace = "facePipePeau_{}".format(i_aux)
|
nameFace = "facePipePeau_{}".format(i_aux)
|
||||||
nameVert = "endEdgeFond_{}".format(i_aux)
|
nameVert = "endEdgeFond_{}".format(i_aux)
|
||||||
nameEdge = "edgeRadFacePipePeau_{}".format(i_aux)
|
|
||||||
facesPipePeau[i_aux] = face
|
facesPipePeau[i_aux] = face
|
||||||
endsEdgeFond[i_aux] = sharedVertices[0]
|
endsEdgeFond[i_aux] = sharedVertices[0]
|
||||||
geomPublish(initLog.debug, face, nameFace, nro_cas)
|
geomPublish(initLog.debug, face, nameFace, nro_cas)
|
||||||
@ -55,29 +55,30 @@ def identifieEdgesPeau_a(edgesFissExtPipe, facePeau, facesPeauSorted, edgesPeauF
|
|||||||
for edge in edgesFace:
|
for edge in edgesFace:
|
||||||
if geompy.MinDistance(edge, sharedVertices[0]) < 1e-3:
|
if geompy.MinDistance(edge, sharedVertices[0]) < 1e-3:
|
||||||
edgeRadFacePipePeau[i_aux] = edge
|
edgeRadFacePipePeau[i_aux] = edge
|
||||||
|
nameEdge = "edgeRadFacePipePeau_{}".format(i_aux)
|
||||||
geomPublish(initLog.debug, edge, nameEdge, nro_cas)
|
geomPublish(initLog.debug, edge, nameEdge, nro_cas)
|
||||||
break
|
break
|
||||||
|
|
||||||
# --- edges elliptiques de la face de peau et points de jonction de la face externe de fissure
|
# --- edges elliptiques de la face de peau et points de jonction de la face externe de fissure
|
||||||
logging.info("Traitement des arêtes de '%s'", facePeau.GetName())
|
logging.info('Nombre de faces : len(facesPipePeau) = %d', len(facesPipePeau))
|
||||||
edgesCircPeau = [None for _ in range(len(facesPipePeau))]
|
edgesCircPeau = list()
|
||||||
verticesCircPeau = [None for _ in range(len(facesPipePeau))]
|
verticesCircPeau = list()
|
||||||
for i_aux,fcirc in enumerate(facesPipePeau):
|
for i_aux,fcirc in enumerate(facesPipePeau):
|
||||||
logging.info(". Partage avec la face '%s'", fcirc.GetName())
|
# Arêtes
|
||||||
edges = geompy.GetSharedShapesMulti([facePeau, fcirc], geompy.ShapeType["EDGE"])
|
edges = geompy.GetSharedShapesMulti([facePeau, fcirc], geompy.ShapeType["EDGE"])
|
||||||
grpEdgesCirc = geompy.CreateGroup(facePeau, geompy.ShapeType["EDGE"])
|
groupe = geompy.CreateGroup(facePeau, geompy.ShapeType["EDGE"])
|
||||||
geompy.UnionList(grpEdgesCirc, edges)
|
geompy.UnionList(groupe, edges)
|
||||||
edgesCircPeau[i_aux] = grpEdgesCirc
|
geomPublishInFather(initLog.always, facePeau, groupe, "edgeCirc_{}".format(i_aux))
|
||||||
name = "edgeCirc_{}".format(i_aux)
|
edgesCircPeau.append(groupe)
|
||||||
geomPublishInFather(initLog.always, facePeau, grpEdgesCirc, name)
|
|
||||||
edgesListees = edgesListees + edges
|
edgesListees = edgesListees + edges
|
||||||
|
# Sommets
|
||||||
vertices = geompy.GetSharedShapesMulti([facePeau, fcirc], geompy.ShapeType["VERTEX"])
|
vertices = geompy.GetSharedShapesMulti([facePeau, fcirc], geompy.ShapeType["VERTEX"])
|
||||||
grpVertCircPeau = geompy.CreateGroup(facePeau, geompy.ShapeType["VERTEX"])
|
groupe = geompy.CreateGroup(facePeau, geompy.ShapeType["VERTEX"])
|
||||||
geompy.UnionList(grpVertCircPeau, vertices)
|
geompy.UnionList(groupe, vertices)
|
||||||
verticesCircPeau[i_aux] = grpVertCircPeau
|
geomPublishInFather(initLog.info, facePeau, groupe, "point(s)EdgeCirc_{}".format(i_aux))
|
||||||
name = "pointEdgeCirc_{}".format(i_aux)
|
verticesCircPeau.append(groupe)
|
||||||
geomPublishInFather(initLog.info, facePeau, grpVertCircPeau, name)
|
|
||||||
|
|
||||||
logging.info('==> Nombre de sommets : len(verticesCircPeau) = %d', len(verticesCircPeau))
|
logging.info("==> Nombre de groupes d'arêtes : len(edgesCircPeau) = %d", len(edgesCircPeau))
|
||||||
|
logging.info("==> Nombre de groupes de sommets : len(verticesCircPeau) = %d", len(verticesCircPeau))
|
||||||
|
|
||||||
return edgesCircPeau, verticesCircPeau
|
return edgesCircPeau, verticesCircPeau
|
||||||
|
@ -32,7 +32,9 @@ def identifieEdgesPeau_b(facePeau, edgesListees, \
|
|||||||
"""edges de bord de la face de peau"""
|
"""edges de bord de la face de peau"""
|
||||||
logging.info('start')
|
logging.info('start')
|
||||||
|
|
||||||
|
# Liste des arêtes de bord
|
||||||
edgesFilling = geompy.ExtractShapes(fillingFaceExterne, geompy.ShapeType["EDGE"], False)
|
edgesFilling = geompy.ExtractShapes(fillingFaceExterne, geompy.ShapeType["EDGE"], False)
|
||||||
|
logging.info('Détermination des arêtes de bord à partir des %d arêtes de fillingFaceExterne', len(edgesFilling))
|
||||||
edgesBords = list()
|
edgesBords = list()
|
||||||
for i_aux, edge in enumerate(edgesFilling):
|
for i_aux, edge in enumerate(edgesFilling):
|
||||||
edgepeau = geompy.GetInPlace(facePeau, edge)
|
edgepeau = geompy.GetInPlace(facePeau, edge)
|
||||||
@ -42,18 +44,19 @@ def identifieEdgesPeau_b(facePeau, edgesListees, \
|
|||||||
if geompy.ShapeInfo(edgepeau)['EDGE'] > 1:
|
if geompy.ShapeInfo(edgepeau)['EDGE'] > 1:
|
||||||
logging.debug(" EDGES multiples")
|
logging.debug(" EDGES multiples")
|
||||||
l_edges = geompy.ExtractShapes(edgepeau, geompy.ShapeType["EDGE"], False)
|
l_edges = geompy.ExtractShapes(edgepeau, geompy.ShapeType["EDGE"], False)
|
||||||
edgesBords += l_edges
|
edgesBords.extend(l_edges)
|
||||||
edgesListees += l_edges
|
edgesListees.extend(l_edges)
|
||||||
else:
|
else:
|
||||||
logging.debug(" EDGE")
|
logging.debug(" EDGE")
|
||||||
edgesBords.append(edgepeau)
|
edgesBords.append(edgepeau)
|
||||||
edgesListees.append(edgepeau)
|
edgesListees.append(edgepeau)
|
||||||
|
logging.info('==> Nombre d arêtes de bord : len(edgesBords) = %d', len(edgesBords))
|
||||||
|
|
||||||
groupEdgesBordPeau = geompy.CreateGroup(facePeau, geompy.ShapeType["EDGE"])
|
groupEdgesBordPeau = geompy.CreateGroup(facePeau, geompy.ShapeType["EDGE"])
|
||||||
geompy.UnionList(groupEdgesBordPeau, edgesBords)
|
geompy.UnionList(groupEdgesBordPeau, edgesBords)
|
||||||
bordsVifs = None
|
bordsVifs = None
|
||||||
if aretesVivesC is not None:
|
if aretesVivesC is not None:
|
||||||
logging.debug("identification des bords vifs par GetInPlace")
|
logging.info("identification des bords vifs par GetInPlace")
|
||||||
bordsVifs = geompy.GetInPlace(facePeau, aretesVivesC)
|
bordsVifs = geompy.GetInPlace(facePeau, aretesVivesC)
|
||||||
if bordsVifs is None:
|
if bordsVifs is None:
|
||||||
logging.debug("pas d'identification des bords vifs par GetInPlace: test par distance")
|
logging.debug("pas d'identification des bords vifs par GetInPlace: test par distance")
|
||||||
@ -69,7 +72,8 @@ def identifieEdgesPeau_b(facePeau, edgesListees, \
|
|||||||
if ( dist < 0.001 ):
|
if ( dist < 0.001 ):
|
||||||
edvifs.append(edge)
|
edvifs.append(edge)
|
||||||
break
|
break
|
||||||
if len(edvifs) >0:
|
if edvifs:
|
||||||
|
logging.info('==> Nombre d arêtes de bord vif : len(edvifs) = %d', len(edvifs))
|
||||||
bordsVifs = geompy.CreateGroup(facePeau,geompy.ShapeType["EDGE"])
|
bordsVifs = geompy.CreateGroup(facePeau,geompy.ShapeType["EDGE"])
|
||||||
for edge in edvifs:
|
for edge in edvifs:
|
||||||
geompy.AddObject(bordsVifs, geompy.GetSubShapeID(facePeau, edge))
|
geompy.AddObject(bordsVifs, geompy.GetSubShapeID(facePeau, edge))
|
||||||
|
@ -33,38 +33,39 @@ def identifieEdgesPeau_c(verticesPipePeau, facePeau, edgesListees, verticesCircP
|
|||||||
logging.info('start')
|
logging.info('start')
|
||||||
logging.info("Traitement des arêtes de '%s'", facePeau.GetName())
|
logging.info("Traitement des arêtes de '%s'", facePeau.GetName())
|
||||||
logging.info('Nombre de sommets : len(verticesPipePeau) = %d', len(verticesPipePeau))
|
logging.info('Nombre de sommets : len(verticesPipePeau) = %d', len(verticesPipePeau))
|
||||||
#logging.info('verticesPipePeau = %s', verticesPipePeau)
|
|
||||||
logging.info('Nombre de sommets : len(verticesCircPeau) = %d', len(verticesCircPeau))
|
|
||||||
#logging.info('verticesCircPeau = %s', verticesCircPeau)
|
|
||||||
|
|
||||||
edgesPeau = geompy.ExtractShapes(facePeau, geompy.ShapeType["EDGE"], False)
|
edgesPeau = geompy.ExtractShapes(facePeau, geompy.ShapeType["EDGE"], False)
|
||||||
logging.info('Nombre total d arêtes de la peau : len(edgesPeau) = %d', len(edgesPeau))
|
logging.info('Nombre total d arêtes de la peau : len(edgesPeau) = %d', len(edgesPeau))
|
||||||
|
|
||||||
edges = substractSubShapes(facePeau, edgesPeau, edgesListees)
|
edges = substractSubShapes(facePeau, edgesPeau, edgesListees)
|
||||||
|
|
||||||
edgesFissurePeau = list()
|
l_edge_cercle = list()
|
||||||
# --- au moins une extrémité du pipe sur cette face de peau
|
# --- au moins une extrémité du pipe sur cette face de peau : arêtes sui les prenent toutes
|
||||||
if verticesPipePeau:
|
if verticesPipePeau:
|
||||||
# En premier, les edges associés aux extrémités du pipe
|
i_aux = -1
|
||||||
edgesFissurePeau = [None for _ in range(len(verticesCircPeau))]
|
|
||||||
for edge in edges:
|
for edge in edges:
|
||||||
for i_aux, vertex in enumerate(verticesCircPeau):
|
for groupe in verticesCircPeau:
|
||||||
logging.info(".. distance %s", geompy.MinDistance(vertex, edge))
|
cercle = True
|
||||||
if ( ( geompy.MinDistance(vertex, edge) < 1.e-3 ) and ( edge not in edgesFissurePeau ) ):
|
for id_vertex in geompy.GetObjectIDs(groupe):
|
||||||
edgesFissurePeau[i_aux] = edge
|
vertex = geompy.GetSubShape(facePeau, [id_vertex])
|
||||||
name = "edgeFissurePeau_{}".format(i_aux)
|
distance = geompy.MinDistance(vertex, edge)
|
||||||
logging.info("... entrée de %s à la place %d", edge, i_aux)
|
logging.info(".. distance %s", distance)
|
||||||
geomPublishInFather(initLog.debug, facePeau, edge, name)
|
if ( distance > 1.e-3 ):
|
||||||
# Ensuite, on ajoute les edges manquantes
|
cercle = False
|
||||||
for edge in edges:
|
break
|
||||||
if edge not in edgesFissurePeau:
|
if cercle:
|
||||||
logging.info("... ajout")
|
logging.info("... entrée de %s dans l_edge_cercle", edge)
|
||||||
edgesFissurePeau.append(edge)
|
l_edge_cercle.append(edge)
|
||||||
|
i_aux += 1
|
||||||
|
name = "edgeFissurePeauCercle_{}".format(i_aux)
|
||||||
|
geomPublishInFather(initLog.info, facePeau, edge, name)
|
||||||
|
|
||||||
else:
|
# --- Les arêtes n'appartenant pas aux cercles
|
||||||
for i_aux, edge in enumerate(edges):
|
edgesFissurePeau = list()
|
||||||
|
for i_aux, edge in enumerate(edges):
|
||||||
|
if edge not in l_edge_cercle:
|
||||||
edgesFissurePeau.append(edge)
|
edgesFissurePeau.append(edge)
|
||||||
name = "edgeFissurePeau{}".format(i_aux)
|
name = "edgeFissurePeau_{}".format(i_aux)
|
||||||
geomPublishInFather(initLog.debug, facePeau, edge, name)
|
geomPublishInFather(initLog.debug, facePeau, edge, name)
|
||||||
|
|
||||||
logging.info('==> Nombre d arêtes : len(edgesFissurePeau) = %d', len(edgesFissurePeau))
|
logging.info('==> Nombre d arêtes : len(edgesFissurePeau) = %d', len(edgesFissurePeau))
|
||||||
|
@ -27,10 +27,9 @@ from .trouveEdgesFissPeau import trouveEdgesFissPeau
|
|||||||
from .identifieFacesPeau import identifieFacesPeau
|
from .identifieFacesPeau import identifieFacesPeau
|
||||||
from .identifieEdgesPeau import identifieEdgesPeau
|
from .identifieEdgesPeau import identifieEdgesPeau
|
||||||
|
|
||||||
def identifieElementsGeometriquesPeau(ifil, partitionPeauFissFond, edgesPipeFiss, \
|
def identifieElementsGeometriquesPeau(ifil, partitionPeauFissFond, \
|
||||||
edgesFondFiss, wireFondFiss, aretesVivesC, \
|
edgesPipeFiss, edgesFondFiss, wireFondFiss, aretesVivesC, \
|
||||||
facesDefaut, centreFondFiss, rayonPipe, \
|
facesDefaut, centreFondFiss, rayonPipe, aretesVivesCoupees, \
|
||||||
aretesVivesCoupees, \
|
|
||||||
nro_cas=None):
|
nro_cas=None):
|
||||||
"""Identification des éléments géométriques de la face de peau"""
|
"""Identification des éléments géométriques de la face de peau"""
|
||||||
logging.info('start')
|
logging.info('start')
|
||||||
@ -69,7 +68,8 @@ def identifieElementsGeometriquesPeau(ifil, partitionPeauFissFond, edgesPipeFiss
|
|||||||
|
|
||||||
# --- identification précise des edges et disques des faces de peau selon index extremité fissure
|
# --- identification précise des edges et disques des faces de peau selon index extremité fissure
|
||||||
|
|
||||||
(endsEdgeFond, facesPipePeau, edgeRadFacePipePeau, edgesCircPeau, verticesCircPeau, groupEdgesBordPeau, \
|
(endsEdgeFond, facesPipePeau, edgeRadFacePipePeau, \
|
||||||
|
edgesCircPeau, groupEdgesBordPeau, \
|
||||||
bordsVifs, edgesFissurePeau, aretesVivesCoupees) = \
|
bordsVifs, edgesFissurePeau, aretesVivesCoupees) = \
|
||||||
identifieEdgesPeau(edgesFissExtPipe, verticesPipePeau, facePeau, facesPeauSorted, \
|
identifieEdgesPeau(edgesFissExtPipe, verticesPipePeau, facePeau, facesPeauSorted, \
|
||||||
edgesPeauFondIn, fillingFaceExterne, aretesVivesC, aretesVivesCoupees, \
|
edgesPeauFondIn, fillingFaceExterne, aretesVivesC, aretesVivesCoupees, \
|
||||||
@ -83,7 +83,6 @@ def identifieElementsGeometriquesPeau(ifil, partitionPeauFissFond, edgesPipeFiss
|
|||||||
edgesFissExtPipe = edgesFissExtPipe, # pour chaque face [edge commun au pipe des faces de fissure externes]
|
edgesFissExtPipe = edgesFissExtPipe, # pour chaque face [edge commun au pipe des faces de fissure externes]
|
||||||
facePeau = facePeau, # pour chaque face : la face de peau finale a mailler (percee des faces débouchantes)
|
facePeau = facePeau, # pour chaque face : la face de peau finale a mailler (percee des faces débouchantes)
|
||||||
edgesCircPeau = edgesCircPeau, # pour chaque face de peau : [groupe subshapes edges circulaires aux débouchés du pipe]
|
edgesCircPeau = edgesCircPeau, # pour chaque face de peau : [groupe subshapes edges circulaires aux débouchés du pipe]
|
||||||
verticesCircPeau = verticesCircPeau, # pour chaque face de peau : [groupe subshapes points sur edges circulaires aux débouchés du pipe]
|
|
||||||
groupEdgesBordPeau = groupEdgesBordPeau, # pour chaque face de peau : groupe subshape des edges aux bords liés à la partie saine
|
groupEdgesBordPeau = groupEdgesBordPeau, # pour chaque face de peau : groupe subshape des edges aux bords liés à la partie saine
|
||||||
bordsVifs = bordsVifs, # pour chaque face de peau : groupe subshape des edges aux bords correspondant à des arêtes vives
|
bordsVifs = bordsVifs, # pour chaque face de peau : groupe subshape des edges aux bords correspondant à des arêtes vives
|
||||||
edgesFissurePeau = edgesFissurePeau, # pour chaque face de peau : [subshape edge en peau des faces de fissure externes]
|
edgesFissurePeau = edgesFissurePeau, # pour chaque face de peau : [subshape edge en peau des faces de fissure externes]
|
||||||
|
@ -60,7 +60,8 @@ def mailleFacesFissure(faceFissureExterne, \
|
|||||||
hypo2d.SetQuadAllowed( 0 )
|
hypo2d.SetQuadAllowed( 0 )
|
||||||
putName(hypo2d, "faceFiss", i_pref=nro_cas)
|
putName(hypo2d, "faceFiss", i_pref=nro_cas)
|
||||||
|
|
||||||
logging.info("UseExisting1DElements depuis '%s'", edgesPipeFissureExterneC.GetName())
|
logging.info("UseExisting1DElements sur la géométrie '%s' avec les mailles de '%s'", \
|
||||||
|
edgesPipeFissureExterneC.GetName(), edgeFaceFissGroup.GetName())
|
||||||
algo1d = meshFaceFiss.UseExisting1DElements(geom=edgesPipeFissureExterneC)
|
algo1d = meshFaceFiss.UseExisting1DElements(geom=edgesPipeFissureExterneC)
|
||||||
putName(algo1d.GetSubMesh(), "edgeFissPeau", i_pref=nro_cas)
|
putName(algo1d.GetSubMesh(), "edgeFissPeau", i_pref=nro_cas)
|
||||||
hypo1d = algo1d.SourceEdges([ edgeFaceFissGroup ],0,0)
|
hypo1d = algo1d.SourceEdges([ edgeFaceFissGroup ],0,0)
|
||||||
|
@ -34,7 +34,7 @@ from . import initLog
|
|||||||
from .putName import putName
|
from .putName import putName
|
||||||
|
|
||||||
def mailleFacesPeau(partitionsPeauFissFond, idFillingFromBout, facesDefaut, \
|
def mailleFacesPeau(partitionsPeauFissFond, idFillingFromBout, facesDefaut, \
|
||||||
facesPeaux, edCircPeau, ptCircPeau, gpedgeBord, gpedgeVifs, edFissPeau, \
|
facesPeaux, edCircPeau, gpedgeBord, gpedgeVifs, edFissPeau, \
|
||||||
bordsLibres, grpEdgesPeauFissureExterne, grpAretesVives, \
|
bordsLibres, grpEdgesPeauFissureExterne, grpAretesVives, \
|
||||||
edgesCircPipeGroup, dmoyen, rayonPipe, nbsegRad, \
|
edgesCircPipeGroup, dmoyen, rayonPipe, nbsegRad, \
|
||||||
mailleur="MeshGems", nro_cas=None):
|
mailleur="MeshGems", nro_cas=None):
|
||||||
@ -91,13 +91,13 @@ def mailleFacesPeau(partitionsPeauFissFond, idFillingFromBout, facesDefaut, \
|
|||||||
# --- edges de bord de la face de filling
|
# --- edges de bord de la face de filling
|
||||||
filling = facesDefaut[ifil]
|
filling = facesDefaut[ifil]
|
||||||
edgesFilling = geompy.ExtractShapes(filling, geompy.ShapeType["EDGE"], False)
|
edgesFilling = geompy.ExtractShapes(filling, geompy.ShapeType["EDGE"], False)
|
||||||
groupEdgesBordPeau = geompy.CreateGroup(filling, geompy.ShapeType["EDGE"])
|
gpedgeBord[ifil] = geompy.CreateGroup(filling, geompy.ShapeType["EDGE"])
|
||||||
geompy.UnionList(groupEdgesBordPeau, edgesFilling)
|
geompy.UnionList(gpedgeBord[ifil], edgesFilling)
|
||||||
geomPublishInFather(initLog.always, filling, groupEdgesBordPeau, "EdgesBords", nro_cas)
|
geomPublishInFather(initLog.always, filling, gpedgeBord[ifil], "EdgesBords", nro_cas)
|
||||||
|
|
||||||
logging.info("UseExisting1DElements sur la géométrie '%s' avec les mailles de '%s'", \
|
logging.info("UseExisting1DElements sur la géométrie '%s' avec les mailles de '%s'", \
|
||||||
groupEdgesBordPeau.GetName(), bordsLibres.GetName())
|
gpedgeBord[ifil].GetName(), bordsLibres.GetName())
|
||||||
algo1d = meshFacePeau.UseExisting1DElements(geom=groupEdgesBordPeau)
|
algo1d = meshFacePeau.UseExisting1DElements(geom=gpedgeBord[ifil])
|
||||||
putName(algo1d.GetSubMesh(), "bordsLibres", ifil, nro_cas)
|
putName(algo1d.GetSubMesh(), "bordsLibres", ifil, nro_cas)
|
||||||
hypo1d = algo1d.SourceEdges([ bordsLibres ],0,0)
|
hypo1d = algo1d.SourceEdges([ bordsLibres ],0,0)
|
||||||
putName(hypo1d, "SourceEdges_{}".format(bordsLibres.GetName()), ifil, nro_cas)
|
putName(hypo1d, "SourceEdges_{}".format(bordsLibres.GetName()), ifil, nro_cas)
|
||||||
@ -105,21 +105,20 @@ def mailleFacesPeau(partitionsPeauFissFond, idFillingFromBout, facesDefaut, \
|
|||||||
else:
|
else:
|
||||||
|
|
||||||
logging.info("face de peau %d coupée par la fissure", ifil)
|
logging.info("face de peau %d coupée par la fissure", ifil)
|
||||||
edgesCircPeau = edCircPeau[ifil] # pour chaque face de peau : [subshape edge circulaire aux débouchés du pipe]
|
# edCircPeau[ifil] # pour chaque face de peau : [subshape edge circulaire aux débouchés du pipe]
|
||||||
_ = ptCircPeau[ifil] # pour chaque face de peau : [subshape point sur edge circulaire aux débouchés du pipe]
|
# gpedgeBord[ifil] : pour chaque face de peau : groupe subshape des edges aux bords liés à la partie saine
|
||||||
groupEdgesBordPeau = gpedgeBord[ifil] # pour chaque face de peau : groupe subshape des edges aux bords liés à la partie saine
|
# gpedgeVifs[ifil] : pour chaque face de peau : groupe subshape des edges aux bords correspondant à des arêtes vives
|
||||||
bordsVifs = gpedgeVifs[ifil] # pour chaque face de peau : groupe subshape des edges aux bords correspondant à des arêtes vives
|
# edFissPeau[ifil] : pour chaque face de peau : [subshape edge en peau des faces de fissure externes]
|
||||||
edgesFissurePeau = edFissPeau[ifil] # pour chaque face de peau : [subshape edge en peau des faces de fissure externes]
|
|
||||||
|
|
||||||
logging.info("UseExisting1DElements sur la géométrie '%s' avec les mailles de '%s'", \
|
logging.info("UseExisting1DElements sur la géométrie '%s' avec les mailles de '%s'", \
|
||||||
groupEdgesBordPeau.GetName(), bordsLibres.GetName())
|
gpedgeBord[ifil].GetName(), bordsLibres.GetName())
|
||||||
algo1d = meshFacePeau.UseExisting1DElements(geom=groupEdgesBordPeau)
|
algo1d = meshFacePeau.UseExisting1DElements(geom=gpedgeBord[ifil])
|
||||||
putName(algo1d.GetSubMesh(), "bordsLibres", ifil, nro_cas)
|
putName(algo1d.GetSubMesh(), "bordsLibres", ifil, nro_cas)
|
||||||
hypo1d = algo1d.SourceEdges([ bordsLibres ],0,0)
|
hypo1d = algo1d.SourceEdges([ bordsLibres ],0,0)
|
||||||
putName(hypo1d, "SourceEdges_{}".format(bordsLibres.GetName()), i_pref=nro_cas)
|
putName(hypo1d, "SourceEdges_{}".format(bordsLibres.GetName()), i_pref=nro_cas)
|
||||||
|
|
||||||
objet = geompy.MakeCompound(edgesFissurePeau)
|
objet = geompy.MakeCompound(edFissPeau[ifil])
|
||||||
geomPublishInFather(initLog.always, facePeau, objet, "edgesFissurePeau")
|
geomPublishInFather(initLog.always, facePeau, objet, "edFissPeau_{}".format(ifil))
|
||||||
logging.info("UseExisting1DElements sur la géométrie '%s' avec les mailles de '%s'", \
|
logging.info("UseExisting1DElements sur la géométrie '%s' avec les mailles de '%s'", \
|
||||||
objet.GetName(), grpEdgesPeauFissureExterne.GetName())
|
objet.GetName(), grpEdgesPeauFissureExterne.GetName())
|
||||||
algo1d = meshFacePeau.UseExisting1DElements(geom=objet)
|
algo1d = meshFacePeau.UseExisting1DElements(geom=objet)
|
||||||
@ -127,15 +126,15 @@ def mailleFacesPeau(partitionsPeauFissFond, idFillingFromBout, facesDefaut, \
|
|||||||
hypo1d = algo1d.SourceEdges([ grpEdgesPeauFissureExterne ],0,0)
|
hypo1d = algo1d.SourceEdges([ grpEdgesPeauFissureExterne ],0,0)
|
||||||
putName(hypo1d, "SourceEdges_{}".format(grpEdgesPeauFissureExterne.GetName()), i_pref=nro_cas)
|
putName(hypo1d, "SourceEdges_{}".format(grpEdgesPeauFissureExterne.GetName()), i_pref=nro_cas)
|
||||||
|
|
||||||
if bordsVifs is not None:
|
if gpedgeVifs[ifil] is not None:
|
||||||
logging.info("UseExisting1DElements sur la géométrie '%s' avec les mailles de '%s'", \
|
logging.info("UseExisting1DElements sur la géométrie '%s' avec les mailles de '%s'", \
|
||||||
bordsVifs.GetName(), grpAretesVives.GetName())
|
gpedgeVifs[ifil].GetName(), grpAretesVives.GetName())
|
||||||
algo1d = meshFacePeau.UseExisting1DElements(geom=bordsVifs)
|
algo1d = meshFacePeau.UseExisting1DElements(geom=gpedgeVifs[ifil])
|
||||||
putName(algo1d.GetSubMesh(), "bordsVifs", ifil, nro_cas)
|
putName(algo1d.GetSubMesh(), "gpedgeVifs", ifil, nro_cas)
|
||||||
hypo1d = algo1d.SourceEdges([ grpAretesVives ],0,0)
|
hypo1d = algo1d.SourceEdges([ grpAretesVives ],0,0)
|
||||||
putName(hypo1d, "SourceEdges_{}".format(grpAretesVives.GetName()), i_pref=nro_cas)
|
putName(hypo1d, "SourceEdges_{}".format(grpAretesVives.GetName()), i_pref=nro_cas)
|
||||||
|
|
||||||
for i_aux, edgeCirc in enumerate(edgesCircPeau):
|
for i_aux, edgeCirc in enumerate(edCircPeau[ifil]):
|
||||||
texte = "i_aux = {}".format(i_aux)
|
texte = "i_aux = {}".format(i_aux)
|
||||||
logging.info(texte)
|
logging.info(texte)
|
||||||
if edgeCirc is not None:
|
if edgeCirc is not None:
|
||||||
|
Loading…
Reference in New Issue
Block a user