Salome HOME
Merge branch 'gni/evolution'
[modules/smesh.git] / src / Tools / blocFissure / CasTests / fissure_Coude.py
index 56cdbe4b76277cf59f79d7fc2608c539eea07893..75f584c0c7afbaaf4fd5ec67bd938c7b2dc4fbb1 100644 (file)
@@ -1,5 +1,5 @@
 # -*- coding: utf-8 -*-
-# Copyright (C) 2014-2020  EDF R&D
+# Copyright (C) 2014-2021  EDF R&D
 #
 # This library is free software; you can redistribute it and/or
 # modify it under the terms of the GNU Lesser General Public
 #
 # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 #
+"""Fissure dans un coude"""
 
+import logging
 import os
-
-from blocFissure import gmu
-from blocFissure.gmu.geomsmesh import geompy, smesh
-
 import math
+
 import GEOM
-import SALOMEDS
 import SMESH
-#import StdMeshers
-#import GHS3DPlugin
-#import NETGENPlugin
-import logging
 
-from blocFissure.gmu.fissureGenerique import fissureGenerique
+from blocFissure.gmu.geomsmesh import geompy
+from blocFissure.gmu.geomsmesh import smesh
+from blocFissure.gmu.geomsmesh import geomPublish
+from blocFissure.gmu.geomsmesh import geomPublishInFather
 
+from blocFissure.gmu import initLog
+from blocFissure.gmu.putName import putName
+from blocFissure.gmu.fissureGenerique import fissureGenerique
 from blocFissure.gmu.triedreBase import triedreBase
 from blocFissure.gmu.genereMeshCalculZoneDefaut import genereMeshCalculZoneDefaut
 from blocFissure.gmu.creeZoneDefautDansObjetSain import creeZoneDefautDansObjetSain
@@ -48,6 +48,13 @@ class fissure_Coude(fissureGenerique):
   """
 
   nomProbleme = "fissure_Coude"
+  geomParams = dict()
+  meshParams = dict()
+  shapeFissureParams = dict()
+  maillageFissureParams = dict()
+  referencesMaillageFissure = dict()
+  circonferentielle = False
+  longitudinale = False
 
   # ---------------------------------------------------------------------------
   def setParamGeometrieSaine(self):
@@ -89,60 +96,61 @@ class fissure_Coude(fissureGenerique):
     Rotation_2 = geompy.MakeRotation(OZ, OY, angleCoude*math.pi/180.0)
     Extrusion_2 = geompy.MakePrismVecH(Rotation_1, Rotation_2, -l_tube_p2)
     Plane_1 = geompy.MakePlaneLCS(None, 100000, 3)
-    geompy.addToStudy( Plane_1, "Plane_1" )
-    geompy.addToStudy( Extrusion_1, "Extrusion_1" )
-    geompy.addToStudy( Revolution_1, "Revolution_1" )
-    geompy.addToStudy( Extrusion_2, "Extrusion_2" )
+    geomPublish(initLog.debug, Plane_1, "Plane_1" )
+    geomPublish(initLog.debug, Extrusion_1, "Extrusion_1" )
+    geomPublish(initLog.debug, Revolution_1, "Revolution_1" )
+    geomPublish(initLog.debug, Extrusion_2, "Extrusion_2" )
 
     P1 = O
-    geompy.addToStudy( P1, "P1" )
+    geomPublish(initLog.always, P1, "P1", self.numeroCas )
     op2 = geompy.MakeVertex(0, 0, -l_tube_p1)
     P2 = geompy.MakeRotation(op2, axe, angleCoude*math.pi/180.0)
     P2 = geompy.MakeTranslationVectorDistance(P2, Rotation_2, -l_tube_p2)
-    geompy.addToStudy( P2, "P2" )
+    geomPublish(initLog.always, P2, "P2", self.numeroCas )
+
 
     # --- tube coude sain
 
     geometrieSaine = geompy.MakePartition([Extrusion_1, Revolution_1, Extrusion_2, P1, P2], [Plane_1], [], [], geompy.ShapeType["SOLID"], 0, [], 1)
-    geompy.addToStudy( geometrieSaine, self.nomCas )
+    geomPublish(initLog.always, geometrieSaine, self.nomCas, self.numeroCas )
     [P1, P2] = geompy.RestoreGivenSubShapes(geometrieSaine, [P1, P2], GEOM.FSM_GetInPlaceByHistory, False, True)
 
     [ep, circ_g, circ_d, long_p2, long_coude, long_p1] = geompy.Propagate(geometrieSaine)
-    geompy.addToStudyInFather( geometrieSaine, long_p1, 'long_p1' )
-    geompy.addToStudyInFather( geometrieSaine, ep, 'ep' )
-    geompy.addToStudyInFather( geometrieSaine, long_coude, 'long_coude' )
-    geompy.addToStudyInFather( geometrieSaine, circ_g, 'circ_g' )
-    geompy.addToStudyInFather( geometrieSaine, circ_d, 'circ_d' )
-    geompy.addToStudyInFather( geometrieSaine, long_p2, 'long_p2' )
+    geomPublishInFather(initLog.always, geometrieSaine, long_p1, 'long_p1' )
+    geomPublishInFather(initLog.always, geometrieSaine, ep, 'ep' )
+    geomPublishInFather(initLog.always, geometrieSaine, long_coude, 'long_coude' )
+    geomPublishInFather(initLog.always, geometrieSaine, circ_g, 'circ_g' )
+    geomPublishInFather(initLog.always, geometrieSaine, circ_d, 'circ_d' )
+    geomPublishInFather(initLog.always, geometrieSaine, long_p2, 'long_p2' )
 
     # --- face extremite tube (EXTUBE)
 
     facesIds = geompy.GetShapesOnPlaneIDs(geometrieSaine, geompy.ShapeType["FACE"], OZ, GEOM.ST_ON)
     EXTUBE = geompy.CreateGroup(geometrieSaine, geompy.ShapeType["FACE"])
     geompy.UnionIDs(EXTUBE, facesIds)
-    geompy.addToStudyInFather( geometrieSaine, EXTUBE, 'EXTUBE' )
+    geomPublishInFather(initLog.always, geometrieSaine, EXTUBE, 'EXTUBE' )
 
     # --- edge bord extremite tube (BORDTU)
 
     edge1Ids = geompy.GetShapesOnPlaneIDs(geometrieSaine, geompy.ShapeType["EDGE"], OZ, GEOM.ST_ON)
     edge2Ids = geompy.GetShapesOnCylinderIDs(geometrieSaine, geompy.ShapeType["EDGE"], OZ, de/2., GEOM.ST_ON)
-    edgesIds = []
+    edgesIds = list()
     for edge in edge1Ids:
       if edge in edge2Ids:
         edgesIds.append(edge)
     BORDTU = geompy.CreateGroup(geometrieSaine, geompy.ShapeType["EDGE"])
     geompy.UnionIDs(BORDTU, edgesIds)
-    geompy.addToStudyInFather( geometrieSaine, BORDTU, 'BORDTU' )
+    geomPublishInFather(initLog.always, geometrieSaine, BORDTU, 'BORDTU' )
 
     # --- face origine tube (CLGV)
 
     pp2 = geompy.MakeTranslationVectorDistance(P2, Rotation_2, 10)
     vec2 = geompy.MakeVector(P2, pp2)
-    #geompy.addToStudy(vec2, 'vec2')
+    #geomPublish(initLog.debug,vec2, 'vec2')
     facesIds = geompy.GetShapesOnPlaneIDs(geometrieSaine, geompy.ShapeType["FACE"], vec2, GEOM.ST_ON)
     CLGV = geompy.CreateGroup(geometrieSaine, geompy.ShapeType["FACE"])
     geompy.UnionIDs(CLGV, facesIds)
-    geompy.addToStudyInFather( geometrieSaine, CLGV, 'CLGV' )
+    geomPublishInFather(initLog.always, geometrieSaine, CLGV, 'CLGV' )
 
     # --- peau tube interieur (PEAUINT)
 
@@ -152,11 +160,11 @@ class fissure_Coude(fissureGenerique):
     extru2 = geompy.MakePrismVecH(rot1, Rotation_2, -l_tube_p2)
     interne = geompy.MakeFuse(extru1, revol1)
     interne = geompy.MakeFuse(extru2, interne)
-    geompy.addToStudy(interne, 'interne')
+    geomPublish(initLog.debug,interne, 'interne')
     facesIds = geompy.GetShapesOnShapeIDs(interne, geometrieSaine, geompy.ShapeType["FACE"], GEOM.ST_ONIN)
     PEAUINT = geompy.CreateGroup(geometrieSaine, geompy.ShapeType["FACE"])
     geompy.UnionIDs(PEAUINT, facesIds)
-    geompy.addToStudyInFather( geometrieSaine, PEAUINT, 'PEAUINT' )
+    geomPublishInFather(initLog.always, geometrieSaine, PEAUINT, 'PEAUINT' )
 
     # --- peau tube exterieur (PEAUEXT)
 
@@ -168,18 +176,18 @@ class fissure_Coude(fissureGenerique):
     extru2 = geompy.MakePrismVecH(rot1, Rotation_2, -l_tube_p2)
     externe = geompy.MakeFuse(extru1, revol1)
     externe = geompy.MakeFuse(extru2, externe)
-    geompy.addToStudy(externe, 'externe')
+    geomPublish(initLog.debug,externe, 'externe')
     facesIds = geompy.GetShapesOnShapeIDs(externe, geometrieSaine, geompy.ShapeType["FACE"], GEOM.ST_ON)
     PEAUEXT = geompy.CreateGroup(geometrieSaine, geompy.ShapeType["FACE"])
     geompy.UnionIDs(PEAUEXT, facesIds)
-    geompy.addToStudyInFather( geometrieSaine, PEAUEXT, 'PEAUEXT' )
+    geomPublishInFather(initLog.always, geometrieSaine, PEAUEXT, 'PEAUEXT' )
 
     # --- solide sain
 
     volIds = geompy.SubShapeAllIDs(geometrieSaine, geompy.ShapeType["SOLID"])
     COUDE = geompy.CreateGroup(geometrieSaine, geompy.ShapeType["SOLID"])
     geompy.UnionIDs(COUDE, volIds)
-    geompy.addToStudyInFather( geometrieSaine, COUDE, 'COUDSAIN' )
+    geomPublishInFather(initLog.always, geometrieSaine, COUDE, 'COUDSAIN' )
 
     geometriesSaines = [geometrieSaine, long_p1, ep, long_coude, circ_g, circ_d, long_p2, P1, P2, EXTUBE, BORDTU, CLGV, PEAUINT, PEAUEXT, COUDE]
 
@@ -225,49 +233,49 @@ class fissure_Coude(fissureGenerique):
 
     algo3d = maillageSain.Hexahedron()
     algo2d = maillageSain.Quadrangle()
-    smesh.SetName(algo3d, "algo3d_maillageSain")
-    smesh.SetName(algo2d, "algo2d_maillageSain")
+    putName(algo3d, "3d_maillageSain", i_pref=self.numeroCas)
+    putName(algo2d, "2d_maillageSain", i_pref=self.numeroCas)
 
     algo1d_long_p1 = maillageSain.Segment(geom=long_p1)
     hypo1d_long_p1 = algo1d_long_p1.NumberOfSegments(n_long_p1)
-    smesh.SetName(algo1d_long_p1, "algo1d_long_p1")
-    smesh.SetName(hypo1d_long_p1, "hypo1d_long_p1")
+    putName(algo1d_long_p1, "algo1d_long_p1", i_pref=self.numeroCas)
+    putName(hypo1d_long_p1, "hypo1d_long_p1", i_pref=self.numeroCas)
 
     algo1d_ep = maillageSain.Segment(geom=ep)
     hypo1d_ep = algo1d_ep.NumberOfSegments(n_ep)
-    smesh.SetName(algo1d_ep, "algo1d_ep")
-    smesh.SetName(hypo1d_ep, "hypo1d_ep")
+    putName(algo1d_ep, "algo1d_ep", i_pref=self.numeroCas)
+    putName(hypo1d_ep, "hypo1d_ep", i_pref=self.numeroCas)
 
     algo1d_long_coude = maillageSain.Segment(geom=long_coude)
     hypo1d_long_coude = algo1d_long_coude.NumberOfSegments(n_long_coude)
-    smesh.SetName(algo1d_long_coude, "algo1d_long_coude")
-    smesh.SetName(hypo1d_long_coude, "hypo1d_long_coude")
+    putName(algo1d_long_coude, "algo1d_long_coude", i_pref=self.numeroCas)
+    putName(hypo1d_long_coude, "hypo1d_long_coude", i_pref=self.numeroCas)
 
     algo1d_circ_g = maillageSain.Segment(geom=circ_g)
     hypo1d_circ_g = algo1d_circ_g.NumberOfSegments(n_circ_g)
-    smesh.SetName(algo1d_circ_g, "algo1d_circ_g")
-    smesh.SetName(hypo1d_circ_g, "hypo1d_circ_g")
+    putName(algo1d_circ_g, "algo1d_circ_g", i_pref=self.numeroCas)
+    putName(hypo1d_circ_g, "hypo1d_circ_g", i_pref=self.numeroCas)
 
     algo1d_circ_d = maillageSain.Segment(geom=circ_d)
     hypo1d_circ_d = algo1d_circ_d.NumberOfSegments(n_circ_d)
-    smesh.SetName(algo1d_circ_d, "algo1d_circ_d")
-    smesh.SetName(hypo1d_circ_d, "hypo1d_circ_d")
+    putName(algo1d_circ_d, "algo1d_circ_d", i_pref=self.numeroCas)
+    putName(hypo1d_circ_d, "hypo1d_circ_d", i_pref=self.numeroCas)
 
     algo1d_long_p2 = maillageSain.Segment(geom=long_p2)
     hypo1d_long_p2 = algo1d_long_p2.NumberOfSegments(n_long_p2)
-    smesh.SetName(algo1d_long_p2, "algo1d_long_p2")
-    smesh.SetName(hypo1d_long_p2, "hypo1d_long_p2")
+    putName(algo1d_long_p2, "algo1d_long_p2", i_pref=self.numeroCas)
+    putName(hypo1d_long_p2, "hypo1d_long_p2", i_pref=self.numeroCas)
 
-    mp1 = maillageSain.GroupOnGeom(P1,'P1',SMESH.NODE)
-    mp2 = maillageSain.GroupOnGeom(P2,'P2',SMESH.NODE)
-    ext = maillageSain.GroupOnGeom(EXTUBE,'EXTUBE',SMESH.FACE)
-    btu = maillageSain.GroupOnGeom(BORDTU,'BORDTU',SMESH.EDGE)
-    clg = maillageSain.GroupOnGeom(CLGV,'CLGV',SMESH.FACE)
-    pei = maillageSain.GroupOnGeom(PEAUINT,'PEAUINT',SMESH.FACE)
-    pex = maillageSain.GroupOnGeom(PEAUEXT,'PEAUEXT',SMESH.FACE)
-    cou = maillageSain.GroupOnGeom(COUDE,'COUDSAIN',SMESH.VOLUME)
+    _ = maillageSain.GroupOnGeom(P1,'P1',SMESH.NODE)
+    _ = maillageSain.GroupOnGeom(P2,'P2',SMESH.NODE)
+    _ = maillageSain.GroupOnGeom(EXTUBE,'EXTUBE',SMESH.FACE)
+    _ = maillageSain.GroupOnGeom(BORDTU,'BORDTU',SMESH.EDGE)
+    _ = maillageSain.GroupOnGeom(CLGV,'CLGV',SMESH.FACE)
+    _ = maillageSain.GroupOnGeom(PEAUINT,'PEAUINT',SMESH.FACE)
+    _ = maillageSain.GroupOnGeom(PEAUEXT,'PEAUEXT',SMESH.FACE)
+    _ = maillageSain.GroupOnGeom(COUDE,'COUDSAIN',SMESH.VOLUME)
 
-    isDone = maillageSain.Compute()
+    _ = maillageSain.Compute()
 
     return [maillageSain, True] # True : maillage hexa
 
@@ -294,14 +302,15 @@ class fissure_Coude(fissureGenerique):
                                    externe     = True)
 
   # ---------------------------------------------------------------------------
-  def genereShapeFissure( self, geometriesSaines, geomParams, shapeFissureParams):
+  def genereShapeFissure( self, geometriesSaines, geomParams, shapeFissureParams, \
+                                mailleur="MeshGems"):
     logging.info("genereShapeFissure %s", self.nomCas)
     logging.info("shapeFissureParams %s", shapeFissureParams)
 
-    angleCoude = geomParams['angleCoude']
+    #angleCoude = geomParams['angleCoude']
     r_cintr    = geomParams['r_cintr']
     l_tube_p1  = geomParams['l_tube_p1']
-    l_tube_p2  = geomParams['l_tube_p2']
+    #l_tube_p2  = geomParams['l_tube_p2']
     epais      = geomParams['epais']
     de         = geomParams['de']
 
@@ -319,17 +328,14 @@ class fissure_Coude(fissureGenerique):
     if not lgInfluence:
       lgInfluence = profondeur
 
-    if longueur > 2*profondeur:
-      self.fissureLongue=True
-    else:
-      self.fissureLongue=False
+    self.fissureLongue = bool(longueur > 2*profondeur)
 
-    self.circonferentielle = False
-    self.longitudinale = False
-    if self.fissureLongue and (abs(orientation) < 45) :
+    if self.fissureLongue and (abs(orientation) < 45.) :
       self.longitudinale = True
     elif self.fissureLongue:
       self.circonferentielle = True
+    #logging.info("longitudinale %s", self.longitudinale)
+    #logging.info("circonferentielle %s", self.circonferentielle)
 
     if self.circonferentielle:
       if externe:
@@ -366,15 +372,15 @@ class fissure_Coude(fissureGenerique):
       facetuber = geompy.MakeRotation(facetube0, OZ, -angle)
       face0 = geompy.MakeFaceWires([arcl,arci, arce, arcr], 1)
       plan0 = geompy.MakePlane(O, OZ, 10000)
-      geompy.addToStudy( face0, 'facefissOrig' )
+      geomPublish(initLog.debug, face0, 'facefissOrig' )
       face1 = geompy.MakeRotation(face0, OZ, azimut*math.pi/180.)
       face2 = geompy.MakeTranslation(face1, 0, 0, -l_tube_p1)
       facefiss = geompy.MakeRotation(face2, axe, alpha*math.pi/180.)
-      geompy.addToStudy( facefiss, 'facefissPlace' )
+      geomPublish(initLog.always, facefiss, "facefissPlace", self.numeroCas )
       centre = geompy.MakeRotation(pb, OZ, azimut*math.pi/180.)
       centre = geompy.MakeTranslation(centre, 0, 0, -l_tube_p1)
       centre = geompy.MakeRotation(centre, axe, alpha*math.pi/180.)
-      geompy.addToStudy( centre, 'centrefissPlace' )
+      geomPublish(initLog.always, centre, "centrefissPlace", self.numeroCas )
       arcr = geompy.MakeRotation(arcr, OZ, azimut*math.pi/180.)
       arcr = geompy.MakeTranslation(arcr, 0, 0, -l_tube_p1)
       arcr = geompy.MakeRotation(arcr, axe, alpha*math.pi/180.)
@@ -387,24 +393,24 @@ class fissure_Coude(fissureGenerique):
       wiretube = geompy.MakeRotation(wire0, OZ, azimut*math.pi/180.)
       wiretube = geompy.MakeTranslation(wiretube, 0, 0, -l_tube_p1)
       wiretube = geompy.MakeRotation(wiretube, axe, alpha*math.pi/180.)
-      geompy.addToStudy(wiretube, 'wiretubePlace' )
+      geomPublish(initLog.always,wiretube, "wiretubePlace", self.numeroCas )
       facetubel = geompy.MakeRotation(facetubel, OZ, azimut*math.pi/180.)
       facetubel = geompy.MakeTranslation(facetubel, 0, 0, -l_tube_p1)
       facetubel = geompy.MakeRotation(facetubel, axe, alpha*math.pi/180.)
-      geompy.addToStudy(facetubel, 'facetubeGauche' )
+      geomPublish(initLog.debug,facetubel, 'facetubeGauche' )
       facetuber = geompy.MakeRotation(facetuber, OZ, azimut*math.pi/180.)
       facetuber = geompy.MakeTranslation(facetuber, 0, 0, -l_tube_p1)
       facetuber = geompy.MakeRotation(facetuber, axe, alpha*math.pi/180.)
-      geompy.addToStudy(facetuber, 'facetubeDroit' )
+      geomPublish(initLog.debug,facetuber, 'facetubeDroit' )
       planfiss = geompy.MakeRotation(plan0, OZ, azimut*math.pi/180.)
       planfiss = geompy.MakeTranslation(planfiss, 0, 0, -l_tube_p1)
       planfiss = geompy.MakeRotation(planfiss, axe, alpha*math.pi/180.)
-      geompy.addToStudy(planfiss, 'planfissPlace' )
+      geomPublish(initLog.always,planfiss, "planfissPlace", self.numeroCas )
       pipefissl = geompy.MakePipe(facetubel, arcl)
       pipefissi = geompy.MakePipe(facetubel, arci)
       pipefissr = geompy.MakePipe(facetuber, arcr)
       pipefiss = geompy.MakePartition([pipefissl, pipefissi, pipefissr], [planfiss, wiretube], [], [], geompy.ShapeType["SOLID"], 0, [], 0)
-      geompy.addToStudy(pipefiss, 'pipefissPlace' )
+      geomPublish(initLog.always,pipefiss, "pipefissPlace", self.numeroCas )
 
 
     elif self.longitudinale:
@@ -433,47 +439,48 @@ class fissure_Coude(fissureGenerique):
       arcr = geompy.MakeArc(pir, prr, per)
       arci = geompy.MakeArc(pil, pi, pir)
       arce = geompy.MakeArc(pel, pe, per)
-      geompy.addToStudy( arcl, 'arcl' )
-      geompy.addToStudy( arcr, 'arcr' )
-      geompy.addToStudy( arci, 'arci' )
-      geompy.addToStudy( arce, 'arce' )
+      geomPublish(initLog.debug, arcl, 'arcl' )
+      geomPublish(initLog.debug, arcr, 'arcr' )
+      geomPublish(initLog.debug, arci, 'arci' )
+      geomPublish(initLog.debug, arce, 'arce' )
       wire0 = geompy.MakeWire([arcr, arci, arcl])
       cercle0 = geompy.MakeCircle(O, OZ, profondeur/4.0)
       #cercle0 = geompy.MakeRotation(cercle0, OZ, math.pi/2.0)
       cercle0 = geompy.MakeTranslationTwoPoints(cercle0, O, pi)
-      geompy.addToStudy( cercle0, 'cercle0' )
+      geomPublish(initLog.debug, cercle0, 'cercle0' )
       facetube0 = geompy.MakeFaceWires([cercle0], 1)
       facetubel = geompy.MakeRotation(facetube0, OY, -angle)
       facetuber = geompy.MakeRotation(facetube0, OY, angle)
-      geompy.addToStudy(facetubel , 'facetubel' )
-      geompy.addToStudy( facetuber, 'facetuber' )
+      geomPublish(initLog.debug,facetubel , 'facetubel' )
+      geomPublish(initLog.debug, facetuber, 'facetuber' )
       face0 = geompy.MakeFaceWires([arcl,arci, arce, arcr], 1)
       plan0 = geompy.MakePlane(O, OY, 10000)
-      geompy.addToStudy( face0, 'facefissOrig' )
+      geomPublish(initLog.debug, face0, 'facefissOrig' )
       facefiss = geompy.MakeRotation(face0, OY, alpha*math.pi/180.)
-      geompy.addToStudy( facefiss, 'facefissPlace' )
+      geomPublish(initLog.always, facefiss, "facefissPlace", self.numeroCas )
       centre = geompy.MakeRotation(pb, OY, alpha*math.pi/180.)
-      geompy.addToStudy( centre, 'centrefissPlace' )
+      geomPublish(initLog.always, centre, "centrefissPlace", self.numeroCas )
       arcr = geompy.MakeRotation(arcr, OY, alpha*math.pi/180.)
       arci = geompy.MakeRotation(arci, OY, alpha*math.pi/180.)
       arcl = geompy.MakeRotation(arcl, OY, alpha*math.pi/180.)
       wiretube = geompy.MakeRotation(wire0, OY, alpha*math.pi/180.)
-      geompy.addToStudy(wiretube, 'wiretubePlace' )
+      geomPublish(initLog.always,wiretube, "wiretubePlace", self.numeroCas )
       facetubel = geompy.MakeRotation(facetubel, OY, alpha*math.pi/180.)
-      geompy.addToStudy(facetubel, 'facetubeGauche' )
+      geomPublish(initLog.debug,facetubel, 'facetubeGauche' )
       facetuber = geompy.MakeRotation(facetuber, OY, alpha*math.pi/180.)
-      geompy.addToStudy(facetubel, 'facetubeDroit' )
+      geomPublish(initLog.debug,facetubel, 'facetubeDroit' )
       planfiss = geompy.MakeRotation(plan0, OY, alpha*math.pi/180.)
-      geompy.addToStudy(planfiss, 'planfissPlace' )
+      geomPublish(initLog.always,planfiss, "planfissPlace", self.numeroCas )
       pipefissl = geompy.MakePipe(facetubel, arcl)
       pipefissi = geompy.MakePipe(facetubel, arci)
       pipefissr = geompy.MakePipe(facetuber, arcr)
       pipefiss = geompy.MakePartition([pipefissl, pipefissi, pipefissr], [planfiss, wiretube], [], [], geompy.ShapeType["SOLID"], 0, [], 0)
-      geompy.addToStudy(pipefiss, 'pipefissPlace' )
+      geomPublish(initLog.always,pipefiss, "pipefissPlace", self.numeroCas )
     else:
       pass
 
-    coordsNoeudsFissure = genereMeshCalculZoneDefaut(facefiss, 5 ,10)
+    mailleur = self.mailleur2d3d()
+    coordsNoeudsFissure = genereMeshCalculZoneDefaut(facefiss, 5 ,10, mailleur, self.numeroCas)
 
     return [facefiss, centre, lgInfluence, coordsNoeudsFissure, wiretube, facetubel, facetuber, planfiss, pipefiss]
 
@@ -481,7 +488,7 @@ class fissure_Coude(fissureGenerique):
   def setParamMaillageFissure(self):
     self.maillageFissureParams = dict(nomRep        = os.curdir,
                                       nomFicSain    = self.nomCas,
-                                      nomFicFissure = 'fissure_' + self.nomCas,
+                                      nomFicFissure = self.nomCas + "_fissure",
                                       nbsegExt      = 5,
                                       nbsegGen      = 25,
                                       nbsegRad      = 5,
@@ -492,16 +499,20 @@ class fissure_Coude(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
 
   # ---------------------------------------------------------------------------
-  def genereMaillageFissure(self, geometriesSaines, maillagesSains,
-                            shapesFissure, shapeFissureParams,
-                            maillageFissureParams, elementsDefaut, step):
-    maillageFissure = insereFissureLongue(geometriesSaines, maillagesSains,
-                                          shapesFissure, shapeFissureParams,
-                                          maillageFissureParams, elementsDefaut, step)
+  def genereMaillageFissure(self, geometriesSaines, maillagesSains, \
+                                  shapesFissure, shapeFissureParams, \
+                                  maillageFissureParams, elementsDefaut, step, \
+                                  mailleur="MeshGems"):
+
+    mailleur = self.mailleur2d3d()
+    maillageFissure = insereFissureLongue(shapesFissure, shapeFissureParams, \
+                                          maillageFissureParams, elementsDefaut, \
+                                          mailleur, self.numeroCas)
     return maillageFissure
 
   # ---------------------------------------------------------------------------
@@ -509,11 +520,10 @@ class fissure_Coude(fissureGenerique):
     self.referencesMaillageFissure = dict( \
                                           Entity_Quad_Quadrangle = 6710, \
                                           Entity_Quad_Hexa = 8656, \
-                                          Entity_Node = 56957, \
+                                          Entity_Node = 76807, \
                                           Entity_Quad_Edge = 1006, \
-                                          Entity_Quad_Triangle = 2344, \
-                                          Entity_Quad_Tetra = 0, \
+                                          Entity_Quad_Triangle = 2342, \
+                                          Entity_Quad_Tetra = 20392, \
                                           Entity_Quad_Pyramid = 1232, \
                                           Entity_Quad_Penta = 1176 \
                                          )
-