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