This commit is contained in:
GERALD NICOLAS 2021-04-15 14:21:22 +02:00
parent 857a95f855
commit 430da9254a
2 changed files with 12 additions and 9 deletions

View File

@ -17,7 +17,7 @@
# #
# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
# #
"""Ajustement precis des points sur edgesPipeFissureExterneC""" """Ajustement précis des points sur edgesPipeFissureExterneC"""
import logging import logging
@ -26,16 +26,17 @@ from .findWireIntermediateVertices import findWireIntermediateVertices
from .projettePointSurCourbe import projettePointSurCourbe from .projettePointSurCourbe import projettePointSurCourbe
def ajustePointsEdgePipeFissure(edgesPipeFissureExterneC, wirePipeFissureExterne, gptsdisks, idisklim): def ajustePointsEdgePipeFissure(edgesPipeFissureExterneC, wirePipeFissureExterne, gptsdisks, idisklim):
"""Ajustement precis des points sur edgesPipeFissureExterneC""" """Ajustement précis des points sur edgesPipeFissureExterneC"""
logging.info('start') logging.info('start')
edgesPFE = geompy.ExtractShapes(edgesPipeFissureExterneC, geompy.ShapeType["EDGE"], False) edgesPFE = geompy.ExtractShapes(edgesPipeFissureExterneC, geompy.ShapeType["EDGE"], False)
verticesPFE, _ = findWireIntermediateVertices(wirePipeFissureExterne) # vertices intermédiaires (des points en trop dans ptsInWireFissExtPipe) verticesPFE, _ = findWireIntermediateVertices(wirePipeFissureExterne) # vertices intermédiaires (des points en trop dans ptsInWireFissExtPipe)
idiskmin = idisklim[0] + 1 # on ne prend pas le disque sur la peau, déjà ajusté idiskmin = idisklim[0] + 1 # on ne prend pas le disque sur la peau, déjà ajusté
idiskmax = idisklim[1] # on ne prend pas le disque sur la peau, déjà ajusté idiskmax = idisklim[1]
idiskint = [] idiskint = list()
for vtx in verticesPFE: for vtx in verticesPFE:
distPtVt = [] distPtVt = list()
for idisk in range(idiskmin, idiskmax): for idisk in range(idiskmin, idiskmax):
gptdsk = gptsdisks[idisk] gptdsk = gptsdisks[idisk]
point = gptdsk[0][-1] # le point sur l'edge de la fissure externe au pipe point = gptdsk[0][-1] # le point sur l'edge de la fissure externe au pipe
@ -44,6 +45,7 @@ def ajustePointsEdgePipeFissure(edgesPipeFissureExterneC, wirePipeFissureExterne
idiskint.append(distPtVt[0][1]) idiskint.append(distPtVt[0][1])
gptsdisks[idiskint[-1]][0][-1] = vtx gptsdisks[idiskint[-1]][0][-1] = vtx
logging.debug("ajustement point sur edgePipeFissureExterne, vertex: %s %s", idiskint[-1], distPtVt[0][0]) logging.debug("ajustement point sur edgePipeFissureExterne, vertex: %s %s", idiskint[-1], distPtVt[0][0])
for idisk in range(idiskmin, idiskmax): for idisk in range(idiskmin, idiskmax):
if idisk in idiskint: if idisk in idiskint:
break break

View File

@ -45,16 +45,17 @@ def insereFissureLongue_c (pipeFondFiss, disques, rayons, demiCercles, demiCercl
meshFondFiss = smesh.Mesh(pipeFondFiss) meshFondFiss = smesh.Mesh(pipeFondFiss)
putName(meshFondFiss, "pipeFondFiss", i_pref=nro_cas) putName(meshFondFiss, "pipeFondFiss", i_pref=nro_cas)
algo2d = meshFondFiss.Quadrangle(algo=smeshBuilder.QUADRANGLE)
algo3d = meshFondFiss.Prism() algo3d = meshFondFiss.Prism()
putName(algo3d.GetSubMesh(), "pipe", i_pref=nro_cas) putName(algo3d.GetSubMesh(), "pipe", i_pref=nro_cas)
putName(algo3d, "{}_3d_pipe".format(mailleur), i_pref=nro_cas) putName(algo3d, "Prism", i_pref=nro_cas)
putName(algo2d, "{}_2d_pipe".format(mailleur), i_pref=nro_cas)
algo2d = meshFondFiss.Quadrangle(algo=smeshBuilder.QUADRANGLE)
putName(algo2d, "QUADRANGLE", i_pref=nro_cas)
for i_aux, face in enumerate(disques): for i_aux, face in enumerate(disques):
algo2d = meshFondFiss.Quadrangle(algo=smeshBuilder.RADIAL_QUAD,geom=face) algo2d = meshFondFiss.Quadrangle(algo=smeshBuilder.RADIAL_QUAD,geom=face)
putName(algo2d.GetSubMesh(), "disque", i_aux, nro_cas) putName(algo2d.GetSubMesh(), "disque", i_aux, nro_cas)
putName(algo2d, "{}_2d_disque".format(mailleur), i_aux, nro_cas) putName(algo2d, "RADIAL_QUAD", i_aux, nro_cas)
for i_aux, edge in enumerate(rayons): for i_aux, edge in enumerate(rayons):
algo1d = meshFondFiss.Segment(geom=edge) algo1d = meshFondFiss.Segment(geom=edge)