mirror of
https://git.salome-platform.org/gitpub/modules/smesh.git
synced 2025-02-27 09:45:38 +05:00
36 lines
1.3 KiB
Python
36 lines
1.3 KiB
Python
# -*- coding: utf-8 -*-
|
|
|
|
import logging
|
|
from geomsmesh import geompy
|
|
|
|
# -----------------------------------------------------------------------------
|
|
# --- construction d'une shape de dectection des éléments à modifier suite à la la duplication des noeuds de la face fissure (d'un coté de la face)
|
|
|
|
def shapeSurFissure(facesFissure):
|
|
"""
|
|
TODO: a completer, Normaliser les vecteurs et ponderer par les surfaces...
|
|
"""
|
|
logging.info('start')
|
|
normal = None
|
|
subIds = geompy.SubShapeAllIDs(facesFissure, geompy.ShapeType["FACE"])
|
|
if len(subIds) > 1:
|
|
logging.debug("plusieurs faces de fissure")
|
|
faces = geompy.ExtractShapes(facesFissure, geompy.ShapeType["FACE"], False)
|
|
extrusions = []
|
|
for n,face in enumerate(faces):
|
|
vertex = geompy.MakeVertexOnSurface(face, 0.5, 0.5)
|
|
normal = geompy.GetNormal(face, vertex)
|
|
extrusion = geompy.MakePrismVecH(face, normal, 100)
|
|
extrusions.append(extrusion)
|
|
extrusionFaceFissure = geompy.MakeCompound(extrusions)
|
|
else:
|
|
logging.debug("une seule face de fissure")
|
|
face = facesFissure
|
|
vertex = geompy.MakeVertexOnSurface(face, 0.5, 0.5)
|
|
normal = geompy.GetNormal(face, vertex)
|
|
extrusionFaceFissure = geompy.MakePrismVecH(facesFissure, normal, 100)
|
|
|
|
geompy.addToStudy(extrusionFaceFissure, "extrusionFaceFissure")
|
|
return extrusionFaceFissure, normal
|
|
|