mirror of
https://git.salome-platform.org/gitpub/modules/smesh.git
synced 2025-04-05 08:38:26 +05:00
55 lines
2.9 KiB
Python
55 lines
2.9 KiB
Python
![]() |
# -*- coding: utf-8 -*-
|
||
|
|
||
|
import logging
|
||
|
|
||
|
from geomsmesh import geompy
|
||
|
from extractionOrientee import extractionOrientee
|
||
|
from extractionOrienteeMulti import extractionOrienteeMulti
|
||
|
|
||
|
def identifieElementsFissure(ifil, facesDefaut, partitionPeauFissFond,
|
||
|
edgesPipeFiss, edgesFondFiss, aretesVivesC,
|
||
|
fillingFaceExterne, centreFondFiss):
|
||
|
"""
|
||
|
# -----------------------------------------------------------------------
|
||
|
# --- identification edges fond de fissure, edges pipe sur la face de fissure,
|
||
|
# edges prolongées
|
||
|
# edges internes communes pipe et fissure, points communs edges fissure peau et edges circulaires
|
||
|
"""
|
||
|
|
||
|
logging.info('start')
|
||
|
|
||
|
edgesPipeC = geompy.GetInPlace(partitionPeauFissFond, geompy.MakeCompound(edgesPipeFiss))
|
||
|
geompy.addToStudyInFather(partitionPeauFissFond, edgesPipeC, "edgesPipeFiss")
|
||
|
edgesFondC = geompy.GetInPlace(partitionPeauFissFond, geompy.MakeCompound(edgesFondFiss))
|
||
|
geompy.addToStudyInFather(partitionPeauFissFond, edgesFondC, "edgesFondFiss")
|
||
|
|
||
|
if aretesVivesC is None:
|
||
|
[edgesInside, edgesOutside, edgesOnside] = extractionOrientee(fillingFaceExterne, partitionPeauFissFond, centreFondFiss, "EDGE", 1.e-3)
|
||
|
[facesInside, facesOutside, facesOnside] = extractionOrientee(fillingFaceExterne, partitionPeauFissFond, centreFondFiss, "FACE", 1.e-3)
|
||
|
else:
|
||
|
[edgesInside, edgesOutside, edgesOnside] = extractionOrienteeMulti(facesDefaut, ifil, partitionPeauFissFond, centreFondFiss, "EDGE", 1.e-3)
|
||
|
[facesInside, facesOutside, facesOnside] = extractionOrienteeMulti(facesDefaut, ifil, partitionPeauFissFond, centreFondFiss, "FACE", 1.e-3)
|
||
|
|
||
|
edgesPipeIn = geompy.GetSharedShapesMulti([edgesPipeC, geompy.MakeCompound(edgesInside)], geompy.ShapeType["EDGE"])
|
||
|
verticesPipePeau = []
|
||
|
|
||
|
for i, edge in enumerate(edgesPipeIn):
|
||
|
try:
|
||
|
vertices = geompy.GetSharedShapesMulti([edge, geompy.MakeCompound(facesOnside)], geompy.ShapeType["VERTEX"])
|
||
|
verticesPipePeau.append(vertices[0])
|
||
|
name = "edgePipeIn%d"%i
|
||
|
geompy.addToStudyInFather(partitionPeauFissFond, edge, name)
|
||
|
name = "verticePipePeau%d"%i
|
||
|
geompy.addToStudyInFather(partitionPeauFissFond, vertices[0], name)
|
||
|
logging.debug("edgePipeIn%s coupe les faces OnSide", i)
|
||
|
except:
|
||
|
logging.debug("edgePipeIn%s ne coupe pas les faces OnSide", i)
|
||
|
|
||
|
edgesFondIn =[]
|
||
|
if len(verticesPipePeau) > 0: # au moins une extrémité du pipe sur cette face de peau
|
||
|
#tmp = geompy.GetSharedShapesMulti([edgesFondC, geompy.MakeCompound(edgesOutside)], geompy.ShapeType["EDGE"])
|
||
|
#edgesFondOut = [ ed for ed in tmp if geompy.MinDistance(ed, geompy.MakeCompound(facesOnside)) < 1.e-3]
|
||
|
tmp = geompy.GetSharedShapesMulti([edgesFondC, geompy.MakeCompound(edgesInside)], geompy.ShapeType["EDGE"])
|
||
|
edgesFondIn = [ ed for ed in tmp if geompy.MinDistance(ed, geompy.MakeCompound(facesOnside)) < 1.e-3]
|
||
|
|
||
|
return (edgesPipeIn, verticesPipePeau, edgesFondIn, facesInside, facesOnside)
|