Salome HOME
Merge from V7_3_BR (09/01/2014)
[modules/smesh.git] / src / Tools / blocFissure / gmu / ellipsoideDefaut.py
1 # -*- coding: utf-8 -*-
2
3 import logging
4 import math
5 from geomsmesh import geompy
6 from triedreBase import triedreBase
7 O, OX, OY, OZ = triedreBase()
8
9 # -----------------------------------------------------------------------------
10 # --- ellipsoide defaut
11
12 def ellipsoideDefaut(minRad,allonge,rayTore):
13   """
14   Le bloc contenant la fissure est un ellipsoide construit centre a l'origine,
15   contenant le tore elliptique de fissure
16   @param minRad :petit rayon
17   @param allonge :rapport grand rayon / petit rayon
18   @param rayTore :rayon du tore construit autour de la generatrice de l'ellipse
19   @return  ellipsoide (geomObject)
20   """
21   logging.info("start") 
22   boule = geompy.MakeSphereR(2)
23   bouler = geompy.MakeRotation(boule, OY, math.pi/2.0)
24   face = geompy.MakeFaceHW(100, 100, 3)
25   boulepart = geompy.MakePartition([bouler], [face], [], [], geompy.ShapeType["SOLID"], 0, [], 0)
26   solids = geompy.ExtractShapes(boulepart, geompy.ShapeType["SOLID"], True)
27   solid0 = solids[0]
28   for i in range(1,len(solids)):
29     solid0 = geompy.MakeFuse(solid0, solids[i])
30   ellipsoide = geompy.MakeScaleAlongAxes(solid0, O, minRad, minRad*(allonge+2.0)/2.0, minRad) # on limite l'allongement de l'ellipsoide
31   #geompy.addToStudy( ellipsoide, 'ellipsoide' )
32   return ellipsoide