Salome HOME
general crack dialog: working on log...
[modules/smesh.git] / src / Tools / blocFissure / gmu / shapeSurFissure.py
1 # -*- coding: utf-8 -*-
2
3 import logging
4 from geomsmesh import geompy
5 from geomsmesh import geomPublish
6 from geomsmesh import geomPublishInFather
7 import initLog
8
9 # -----------------------------------------------------------------------------
10 # --- 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)
11
12 def shapeSurFissure(facesFissure):
13   """
14   TODO: a completer, Normaliser les vecteurs et ponderer par les surfaces...
15   """
16   logging.info('start')
17   normal = None
18   subIds = geompy.SubShapeAllIDs(facesFissure, geompy.ShapeType["FACE"])
19   if len(subIds) > 1:
20     logging.debug("plusieurs faces de fissure")
21     faces = geompy.ExtractShapes(facesFissure, geompy.ShapeType["FACE"], False)
22     extrusions = []
23     for n,face in enumerate(faces):
24       vertex = geompy.MakeVertexOnSurface(face, 0.5, 0.5)
25       normal = geompy.GetNormal(face, vertex)
26       extrusion = geompy.MakePrismVecH(face, normal, 100)
27       extrusions.append(extrusion)
28     extrusionFaceFissure = geompy.MakeCompound(extrusions)
29   else:
30     logging.debug("une seule face de fissure")
31     face = facesFissure
32     vertex = geompy.MakeVertexOnSurface(face, 0.5, 0.5)
33     normal = geompy.GetNormal(face, vertex)
34     extrusionFaceFissure = geompy.MakePrismVecH(facesFissure, normal, 100)
35     
36   geomPublish(initLog.debug, extrusionFaceFissure, "extrusionFaceFissure")
37   return extrusionFaceFissure, normal
38