Salome HOME
Merge branch 'hydro/imps_2015' into V7_dev
[modules/smesh.git] / src / Tools / blocFissure / gmu / creeZoneDefautFilling.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 # --- crée zone géométrique défaut a partir d'un filling
11
12 def creeZoneDefautFilling(filling, shapeDefaut, lgExtrusion=50):
13   """
14   Construction CAO de la zone à remailler, quand on utilise un filling,
15   après appel creeZoneDefautMaillage et quadranglesToShapeNoCorner
16   @param filling : la CAO de la peau du défaut reconstituée
17   @param shapeDefaut : objet géométrique représentant la fissure
18   (selon les cas, un point central, ou une shape plus complexe,
19   dont on ne garde que les vertices)
20   @return (facesDefaut = filling, centreDefaut, normalDefaut, extrusionDefaut)
21   """
22   logging.info("start")
23
24   trace = True
25   facesDefaut = filling
26   centreSphere = geompy.MakeCDG(shapeDefaut)
27   geomPublish(initLog.debug, centreSphere, "cdg_defaut")
28   centreDefaut = geompy.MakeProjection(centreSphere, filling)
29   if trace:
30     geomPublish(initLog.debug, centreDefaut, "centreDefaut")
31   normalDefaut = geompy.GetNormal(filling, centreDefaut)
32   if trace:
33     geomPublish(initLog.debug, normalDefaut, "normalDefaut")
34   extrusionDefaut = geompy.MakePrismVecH(filling, normalDefaut, -lgExtrusion)
35   if trace:
36     geomPublish(initLog.debug, extrusionDefaut, "extrusionDefaut")
37
38   return facesDefaut, centreDefaut, normalDefaut, extrusionDefaut