nro_cas=None):
"""Identification précise des edges et disques des faces de peau selon index extremité fissure"""
logging.info('start')
+ logging.info('Nombre de sommets : len(verticesPipePeau) = %d', len(verticesPipePeau))
facesPipePeau = [None for _ in range(len(edgesFissExtPipe))]
endsEdgeFond = [None for _ in range(len(edgesFissExtPipe))]
edgeRadFacePipePeau = [None for _ in range(len(edgesFissExtPipe))]
edgesListees = list()
- if len(verticesPipePeau) > 0: # --- au moins une extrémité du pipe sur cette face de peau
+ # --- au moins une extrémité du pipe sur cette face de peau
+ if verticesPipePeau:
edgesCircPeau, verticesCircPeau = identifieEdgesPeau_a(edgesFissExtPipe, facePeau, facesPeauSorted, edgesPeauFondIn, \
endsEdgeFond, facesPipePeau, edgeRadFacePipePeau, edgesListees, \
nro_cas)
# --- edges de la face de peau partagées avec la face de fissure
-
edgesFissurePeau = identifieEdgesPeau_c(verticesPipePeau, facePeau, edgesListees, verticesCircPeau)
return (endsEdgeFond, facesPipePeau, edgeRadFacePipePeau,
j_aux_0 = j_aux
break
sharedVertices = geompy.GetSharedShapesMulti([face, edgesPeauFondIn[j_aux_0]], geompy.ShapeType["VERTEX"])
- nameFace = "facePipePeau{}".format(i_aux)
- nameVert = "endEdgeFond{}".format(i_aux)
- nameEdge = "edgeRadFacePipePeau{}".format(i_aux)
+ nameFace = "facePipePeau_{}".format(i_aux)
+ nameVert = "endEdgeFond_{}".format(i_aux)
+ nameEdge = "edgeRadFacePipePeau_{}".format(i_aux)
facesPipePeau[i_aux] = face
endsEdgeFond[i_aux] = sharedVertices[0]
geomPublish(initLog.debug, face, nameFace, nro_cas)
geomPublish(initLog.debug, edge, nameEdge, nro_cas)
break
- # --- edges circulaires de la face de peau et points de jonction de la face externe de fissure
- logging.debug("facesPipePeau: %s", facesPipePeau)
+ # --- 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())
edgesCircPeau = [None for _ in range(len(facesPipePeau))]
verticesCircPeau = [None for _ in range(len(facesPipePeau))]
for i_aux,fcirc in enumerate(facesPipePeau):
+ logging.info(". Partage avec la face '%s'", fcirc.GetName())
edges = geompy.GetSharedShapesMulti([facePeau, fcirc], geompy.ShapeType["EDGE"])
grpEdgesCirc = geompy.CreateGroup(facePeau, geompy.ShapeType["EDGE"])
geompy.UnionList(grpEdgesCirc, edges)
edgesCircPeau[i_aux] = grpEdgesCirc
- name = "edgeCirc{}".format(i_aux)
+ name = "edgeCirc_{}".format(i_aux)
geomPublishInFather(initLog.always, facePeau, grpEdgesCirc, name)
edgesListees = edgesListees + edges
vertices = geompy.GetSharedShapesMulti([facePeau, fcirc], geompy.ShapeType["VERTEX"])
grpVertCircPeau = geompy.CreateGroup(facePeau, geompy.ShapeType["VERTEX"])
geompy.UnionList(grpVertCircPeau, vertices)
verticesCircPeau[i_aux] = grpVertCircPeau
- name = "pointEdgeCirc{}".format(i_aux)
- geomPublishInFather(initLog.debug, facePeau, grpVertCircPeau, name)
+ name = "pointEdgeCirc_{}".format(i_aux)
+ geomPublishInFather(initLog.info, facePeau, grpVertCircPeau, name)
+
+ logging.info('==> Nombre de sommets : len(verticesCircPeau) = %d', len(verticesCircPeau))
return edgesCircPeau, verticesCircPeau
edgesBords = list()
for i_aux, edge in enumerate(edgesFilling):
edgepeau = geompy.GetInPlace(facePeau, edge)
- name = "edgepeau{}".format(i_aux)
+ name = "edgepeau_{}".format(i_aux)
geomPublishInFather(initLog.debug, facePeau,edgepeau, name)
logging.debug("edgepeau %s", geompy.ShapeInfo(edgepeau))
if geompy.ShapeInfo(edgepeau)['EDGE'] > 1:
def identifieEdgesPeau_c(verticesPipePeau, facePeau, edgesListees, verticesCircPeau):
"""edges de la face de peau partagées avec la face de fissure"""
logging.info('start')
+ logging.info("Traitement des arêtes de '%s'", facePeau.GetName())
+ 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)
+ logging.info('Nombre total d arêtes de la peau : len(edgesPeau) = %d', len(edgesPeau))
+
edges = substractSubShapes(facePeau, edgesPeau, edgesListees)
- edgesFissurePeau = list()
- if len(verticesPipePeau) > 0: # --- au moins une extrémité du pipe sur cette face de peau
- edgesFissurePeau = [None for _ in range(len(verticesCircPeau))] # edges associés aux extrémités du pipe, en premier
+ edgesFissurePeau = list()
+# --- au moins une extrémité du pipe sur cette face de peau
+ if verticesPipePeau:
+ # En premier, les edges associés aux extrémités du pipe
+ edgesFissurePeau = [None for _ in range(len(verticesCircPeau))]
for edge in edges:
- for i_aux, grpVert in enumerate(verticesCircPeau):
- if (geompy.MinDistance(grpVert, edge) < 1.e-3) and (edge not in edgesFissurePeau):
+ for i_aux, vertex in enumerate(verticesCircPeau):
+ logging.info(".. distance %s", geompy.MinDistance(vertex, edge))
+ if ( ( geompy.MinDistance(vertex, edge) < 1.e-3 ) and ( edge not in edgesFissurePeau ) ):
edgesFissurePeau[i_aux] = edge
- name = "edgeFissurePeau{}".format(i_aux)
- geomPublishInFather(initLog.debug, facePeau, edge, name)
- for edge in edges: # on ajoute après les edges manquantes
+ name = "edgeFissurePeau_{}".format(i_aux)
+ logging.info("... entrée de %s à la place %d", edge, i_aux)
+ geomPublishInFather(initLog.debug, facePeau, edge, name)
+ # Ensuite, on ajoute les edges manquantes
+ for edge in edges:
if edge not in edgesFissurePeau:
+ logging.info("... ajout")
edgesFissurePeau.append(edge)
else:
for i_aux, edge in enumerate(edges):
edgesFissurePeau.append(edge)
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))
return edgesFissurePeau
geompy.UnionList(groupEdgesBordPeau, edgesFilling)
geomPublishInFather(initLog.always, filling, groupEdgesBordPeau, "EdgesBords", nro_cas)
- logging.info("UseExisting1DElements depuis '%s'", groupEdgesBordPeau.GetName())
+ logging.info("UseExisting1DElements sur la géométrie '%s' avec les mailles de '%s'", \
+ groupEdgesBordPeau.GetName(), bordsLibres.GetName())
algo1d = meshFacePeau.UseExisting1DElements(geom=groupEdgesBordPeau)
putName(algo1d.GetSubMesh(), "bordsLibres", ifil, nro_cas)
hypo1d = algo1d.SourceEdges([ bordsLibres ],0,0)
bordsVifs = gpedgeVifs[ifil] # pour chaque face de peau : groupe subshape des edges aux bords correspondant à des arêtes vives
edgesFissurePeau = edFissPeau[ifil] # pour chaque face de peau : [subshape edge en peau des faces de fissure externes]
- logging.info("UseExisting1DElements depuis groupEdgesBordPeau = '%s'", groupEdgesBordPeau.GetName())
+ logging.info("UseExisting1DElements sur la géométrie '%s' avec les mailles de '%s'", \
+ groupEdgesBordPeau.GetName(), bordsLibres.GetName())
algo1d = meshFacePeau.UseExisting1DElements(geom=groupEdgesBordPeau)
putName(algo1d.GetSubMesh(), "bordsLibres", ifil, nro_cas)
hypo1d = algo1d.SourceEdges([ bordsLibres ],0,0)
- putName(hypo1d, "SourceEdges_{}".format(bordsLibres.GetName()), ifil, nro_cas)
+ putName(hypo1d, "SourceEdges_{}".format(bordsLibres.GetName()), i_pref=nro_cas)
objet = geompy.MakeCompound(edgesFissurePeau)
geomPublishInFather(initLog.always, facePeau, objet, "edgesFissurePeau")
- logging.info("UseExisting1DElements depuis objet = '%s'", objet.GetName())
+ logging.info("UseExisting1DElements sur la géométrie '%s' avec les mailles de '%s'", \
+ objet.GetName(), grpEdgesPeauFissureExterne.GetName())
algo1d = meshFacePeau.UseExisting1DElements(geom=objet)
- putName(algo1d.GetSubMesh(), "edgePeauFiss", ifil, nro_cas)
+ putName(algo1d.GetSubMesh(), objet.GetName(), i_pref=nro_cas)
hypo1d = algo1d.SourceEdges([ grpEdgesPeauFissureExterne ],0,0)
- putName(hypo1d, "SourceEdges_{}".format(grpEdgesPeauFissureExterne.GetName()), ifil, nro_cas)
+ putName(hypo1d, "SourceEdges_{}".format(grpEdgesPeauFissureExterne.GetName()), i_pref=nro_cas)
if bordsVifs is not None:
- logging.info("UseExisting1DElements depuis bordsVifs = '%s'", bordsVifs.GetName())
+ logging.info("UseExisting1DElements sur la géométrie '%s' avec les mailles de '%s'", \
+ bordsVifs.GetName(), grpAretesVives.GetName())
algo1d = meshFacePeau.UseExisting1DElements(geom=bordsVifs)
putName(algo1d.GetSubMesh(), "bordsVifs", ifil, nro_cas)
hypo1d = algo1d.SourceEdges([ grpAretesVives ],0,0)
- putName(hypo1d, "SourceEdges_{}".format(grpAretesVives.GetName()), ifil, nro_cas)
+ putName(hypo1d, "SourceEdges_{}".format(grpAretesVives.GetName()), i_pref=nro_cas)
for i_aux, edgeCirc in enumerate(edgesCircPeau):
texte = "i_aux = {}".format(i_aux)
logging.info(texte)
if edgeCirc is not None:
- logging.info("UseExisting1DElements depuis edgeCirc = '%s'", edgeCirc.GetName())
- algo1d = meshFacePeau.UseExisting1DElements(geom=edgeCirc) # addToStudy() failed ?
- name = "cercle{}".format(i_aux)
- putName(algo1d.GetSubMesh(), name, ifil, nro_cas)
if boutFromIfil[ifil] is None:
- hypo1d = algo1d.SourceEdges([ edgesCircPipeGroup[i_aux] ],0,0)
+ groupe = edgesCircPipeGroup[i_aux]
else:
- hypo1d = algo1d.SourceEdges([ edgesCircPipeGroup[boutFromIfil[ifil]] ],0,0)
- putName(hypo1d, "SourceEdges_" + name, ifil, nro_cas)
+ groupe = edgesCircPipeGroup[boutFromIfil[ifil]]
+ logging.info("UseExisting1DElements sur la géométrie '%s' avec les mailles de '%s'", \
+ edgeCirc.GetName(), groupe.GetName())
+ algo1d = meshFacePeau.UseExisting1DElements(geom=edgeCirc) # addToStudy() failed ?
+ putName(algo1d.GetSubMesh(), groupe.GetName(), i_pref=nro_cas)
+ hypo1d = algo1d.SourceEdges([ groupe ],0,0)
+ putName(hypo1d, "SourceEdges_{}".format(groupe.GetName()), i_pref=nro_cas)
is_done = meshFacePeau.Compute()
text = "meshFacePeau {} .Compute".format(ifil)