X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FTools%2FblocFissure%2Fgmu%2FcasStandard.py;h=bc2ab6d715cf68af20b132ef4d02f6f18583b948;hb=6e356afaff4f01d88f76e5cde2cbfcadebe47c50;hp=ecce716728f4998384ee8e3719830b0cf2a71e84;hpb=4e6f2284a44bc1da45d137fe825e31b2feadaa9a;p=modules%2Fsmesh.git diff --git a/src/Tools/blocFissure/gmu/casStandard.py b/src/Tools/blocFissure/gmu/casStandard.py index ecce71672..bc2ab6d71 100644 --- a/src/Tools/blocFissure/gmu/casStandard.py +++ b/src/Tools/blocFissure/gmu/casStandard.py @@ -22,10 +22,6 @@ import os import logging -import GEOM -import SALOMEDS -import SMESH - from .geomsmesh import geompy, smesh from .geomsmesh import geomPublish from .geomsmesh import geomPublishInFather @@ -39,6 +35,7 @@ from .triedreBase import triedreBase from .genereMeshCalculZoneDefaut import genereMeshCalculZoneDefaut from .creeZoneDefautDansObjetSain import creeZoneDefautDansObjetSain from .construitFissureGenerale import construitFissureGenerale +from .putName import putName O, OX, OY, OZ = triedreBase() @@ -47,42 +44,50 @@ class casStandard(fissureGenerique): - un maillage sain (hexaèdres), - une face géométrique de fissure, qui doit légèrement dépasser hors du volume maillé - - les numéros d'arêtes (edges géométriques) correspondant au fond de fissure + - les noms des groupes d'arêtes ou leurs numéros d'arêtes (edges au sens de GEOM) correspondant au fond de fissure - les paramètres de maillage de la fissure """ referencesMaillageFissure = None # --------------------------------------------------------------------------- - def __init__ (self, dicoParams, references = None, numeroCas = 0): + def __init__ (self, dicoParams, references = None, numeroCas = None): initEtude() self.references = references self.dicoParams = dicoParams + self.numeroCas = numeroCas + + if 'nomProbleme' in self.dicoParams: + self.nomProbleme = self.dicoParams['nomProbleme'] + if 'nomCas' in self.dicoParams: self.nomCas = self.dicoParams['nomCas'] elif 'nomres' in self.dicoParams: self.nomCas = os.path.splitext(os.path.split(self.dicoParams['nomres'])[1])[0] + elif ( self.numeroCas is not None ): + self.nomCas = self.nomProbleme +"_%d"%(self.numeroCas) else: self.nomCas = 'casStandard' + if 'reptrav' in self.dicoParams: self.reptrav = self.dicoParams['reptrav'] else: self.reptrav = os.curdir - self.numeroCas = numeroCas - if self.numeroCas != 0: - self.nomCas = self.nomProbleme +"_%d"%(self.numeroCas) - else: - self.nomProbleme = self.nomCas + if 'lenSegPipe' in self.dicoParams: self.lenSegPipe = self.dicoParams['lenSegPipe'] else: - self.lenSegPipe =self.dicoParams['rayonPipe'] + self.lenSegPipe = self.dicoParams['rayonPipe'] + if 'step' in self.dicoParams: step = self.dicoParams['step'] else: step = -1 # exécuter toutes les étapes + if 'aretesVives' not in self.dicoParams: self.dicoParams['aretesVives'] = 0 - if self.numeroCas == 0: # valeur par défaut : exécution immédiate, sinon execution différée dans le cas d'une liste de problèmes + + # valeur par défaut : exécution immédiate, sinon execution différée dans le cas d'une liste de problèmes + if ( self.numeroCas is None ): self.executeProbleme(step) # --------------------------------------------------------------------------- @@ -90,7 +95,7 @@ class casStandard(fissureGenerique): logging.info("genereMaillageSain %s", self.nomCas) ([objetSain], _) = smesh.CreateMeshesFromMED(self.dicoParams['maillageSain']) - smesh.SetName(objetSain.GetMesh(), 'objetSain') + putName(objetSain.GetMesh(), objetSain.GetName(), i_pref=self.numeroCas) return [objetSain, True] # True : maillage hexa @@ -149,7 +154,7 @@ class casStandard(fissureGenerique): coordsNoeudsFissure = genereMeshCalculZoneDefaut(shellFiss, self.dicoParams['meshBrep'][0] ,self.dicoParams['meshBrep'][1], \ - mailleur) + mailleur, self.numeroCas) centre = None return [shellFiss, centre, lgInfluence, coordsNoeudsFissure, fondFiss] @@ -157,8 +162,8 @@ class casStandard(fissureGenerique): # --------------------------------------------------------------------------- def setParamMaillageFissure(self): self.maillageFissureParams = dict(nomRep = self.reptrav, - nomFicSain = self.nomCas +'_sain', - nomFicFissure = self.nomCas, + nomFicSain = self.nomCas, + nomFicFissure = self.nomProbleme + "_fissure", nbsegRad = self.dicoParams['nbSegRad'], nbsegCercle = self.dicoParams['nbSegCercle'], areteFaceFissure = self.dicoParams['areteFaceFissure'], @@ -166,7 +171,8 @@ class casStandard(fissureGenerique): # --------------------------------------------------------------------------- def genereZoneDefaut(self, geometriesSaines, maillagesSains, shapesFissure, shapeFissureParams, maillageFissureParams): - elementsDefaut = creeZoneDefautDansObjetSain(geometriesSaines, maillagesSains, shapesFissure, shapeFissureParams, maillageFissureParams) + elementsDefaut = creeZoneDefautDansObjetSain(geometriesSaines, maillagesSains, shapesFissure, shapeFissureParams, maillageFissureParams, \ + self.numeroCas) return elementsDefaut # --------------------------------------------------------------------------- @@ -176,7 +182,7 @@ class casStandard(fissureGenerique): mailleur="MeshGems"): maillageFissure = construitFissureGenerale(shapesFissure, shapeFissureParams, \ maillageFissureParams, elementsDefaut, \ - step, mailleur, self.numeroCas) + mailleur, self.numeroCas) return maillageFissure # ---------------------------------------------------------------------------