X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FTools%2FblocFissure%2Fgmu%2FellipsoideDefaut.py;fp=src%2FTools%2FblocFissure%2Fgmu%2FellipsoideDefaut.py;h=3940d57ca992942c5281ecce3db0e2bcf1913cc4;hb=e9e7af000e6d84b90aaa62d06f8c28ab093b0745;hp=0000000000000000000000000000000000000000;hpb=8c0cc49261c88cde61a96c8642ac89e061ff1fd8;p=modules%2Fsmesh.git diff --git a/src/Tools/blocFissure/gmu/ellipsoideDefaut.py b/src/Tools/blocFissure/gmu/ellipsoideDefaut.py new file mode 100644 index 000000000..3940d57ca --- /dev/null +++ b/src/Tools/blocFissure/gmu/ellipsoideDefaut.py @@ -0,0 +1,32 @@ +# -*- coding: utf-8 -*- + +import logging +import math +from geomsmesh import geompy +from triedreBase import triedreBase +O, OX, OY, OZ = triedreBase() + +# ----------------------------------------------------------------------------- +# --- ellipsoide defaut + +def ellipsoideDefaut(minRad,allonge,rayTore): + """ + Le bloc contenant la fissure est un ellipsoide construit centre a l'origine, + contenant le tore elliptique de fissure + @param minRad :petit rayon + @param allonge :rapport grand rayon / petit rayon + @param rayTore :rayon du tore construit autour de la generatrice de l'ellipse + @return ellipsoide (geomObject) + """ + logging.info("start") + boule = geompy.MakeSphereR(2) + bouler = geompy.MakeRotation(boule, OY, math.pi/2.0) + face = geompy.MakeFaceHW(100, 100, 3) + boulepart = geompy.MakePartition([bouler], [face], [], [], geompy.ShapeType["SOLID"], 0, [], 0) + solids = geompy.ExtractShapes(boulepart, geompy.ShapeType["SOLID"], True) + solid0 = solids[0] + for i in range(1,len(solids)): + solid0 = geompy.MakeFuse(solid0, solids[i]) + ellipsoide = geompy.MakeScaleAlongAxes(solid0, O, minRad, minRad*(allonge+2.0)/2.0, minRad) # on limite l'allongement de l'ellipsoide + #geompy.addToStudy( ellipsoide, 'ellipsoide' ) + return ellipsoide