smesh/src/Tools/blocFissure/gmu/genereElemsFissureElliptique.py
2014-12-11 15:45:06 +01:00

58 lines
2.3 KiB
Python

# -*- coding: utf-8 -*-
import logging
from geomsmesh import geompy
from geomsmesh import geomPublish
from geomsmesh import geomPublishInFather
import initLog
from toreFissure import toreFissure
from ellipsoideDefaut import ellipsoideDefaut
from rotTrans import rotTrans
from genereMeshCalculZoneDefaut import genereMeshCalculZoneDefaut
# -----------------------------------------------------------------------------
# --- création élements géométriques fissure elliptique
def genereElemsFissureElliptique(shapeFissureParams):
"""
TODO: a completer
"""
logging.info('start')
centreDefaut = shapeFissureParams['centreDefaut']
vecteurDefaut = shapeFissureParams['vecteurDefaut']
demiGrandAxe = shapeFissureParams['demiGrandAxe']
demiPetitAxe = shapeFissureParams['demiPetitAxe']
orientation = shapeFissureParams['orientation']
tailleDefaut = shapeFissureParams['taille']
# --- ellipse incomplete : generatrice
allonge = demiGrandAxe/demiPetitAxe
rayonTore = demiPetitAxe/5.0
generatrice, FaceGenFiss, Pipe_1, FaceFissure, Plane_1, Pipe1Part = toreFissure(demiPetitAxe, allonge, rayonTore)
ellipsoide = ellipsoideDefaut(demiPetitAxe, allonge, rayonTore)
# --- positionnement sur le bloc defaut de generatrice, tore et plan fissure
pipe0 = rotTrans(Pipe_1, orientation, centreDefaut, vecteurDefaut)
gener1 = rotTrans(generatrice, orientation, centreDefaut, vecteurDefaut)
pipe1 = rotTrans(Pipe1Part, orientation, centreDefaut, vecteurDefaut)
facefis1 = rotTrans(FaceFissure, orientation, centreDefaut, vecteurDefaut)
plane1 = rotTrans(Plane_1, orientation, centreDefaut, vecteurDefaut)
ellipsoide1 = rotTrans(ellipsoide, orientation, centreDefaut, vecteurDefaut)
geomPublish(initLog.debug, pipe0, 'pipe0' )
geomPublish(initLog.debug, gener1, 'gener1' )
geomPublish(initLog.debug, pipe1, 'pipe1' )
geomPublish(initLog.debug, facefis1, 'facefis1' )
geomPublish(initLog.debug, plane1, 'plane1' )
geomPublish(initLog.debug, ellipsoide1, 'ellipsoide1' )
shapeDefaut = facefis1
xyz_defaut = geompy.PointCoordinates(centreDefaut)
coordsNoeudsFissure = genereMeshCalculZoneDefaut(facefis1, demiPetitAxe/10.0, demiPetitAxe/5.0)
return shapeDefaut, xyz_defaut, tailleDefaut, coordsNoeudsFissure, pipe0, gener1, pipe1, facefis1, plane1, ellipsoide1