X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FTools%2FblocFissure%2Fgmu%2FconstruitFissureGenerale.py;h=eda66284a272f59964d9cf86d613fd56d94d6834;hb=415e5989ba936fba99bd27ebb54055ef380b33be;hp=c1f46c8fd048ae500916d1c80d88b990ecf91f08;hpb=33b6f8700337fa00f3e48076a6f6d8df87d8e57f;p=modules%2Fsmesh.git diff --git a/src/Tools/blocFissure/gmu/construitFissureGenerale.py b/src/Tools/blocFissure/gmu/construitFissureGenerale.py index c1f46c8fd..eda66284a 100644 --- a/src/Tools/blocFissure/gmu/construitFissureGenerale.py +++ b/src/Tools/blocFissure/gmu/construitFissureGenerale.py @@ -20,14 +20,17 @@ """procédure complète de construction d'une fissure générale""" import logging + +from . import initLog + import salome +from salome.smesh import smeshBuilder +import GEOM +import SMESH + from .geomsmesh import geompy from .geomsmesh import geomPublishInFather -from . import initLog -import GEOM from .geomsmesh import smesh -from salome.smesh import smeshBuilder -import SMESH from .orderEdgesFromWire import orderEdgesFromWire from .restreintFaceFissure import restreintFaceFissure @@ -44,6 +47,7 @@ from .construitMaillagePipe import construitMaillagePipe from .mailleAretesEtJonction import mailleAretesEtJonction from .mailleFacesFissure import mailleFacesFissure from .mailleFacesPeau import mailleFacesPeau +from .putName import putName from .construitFissureGenerale_a import construitFissureGenerale_a from .construitFissureGenerale_b import construitFissureGenerale_b @@ -53,10 +57,10 @@ from .construitFissureGenerale_c import construitFissureGenerale_c def construitFissureGenerale(shapesFissure, shapeFissureParams, \ maillageFissureParams, elementsDefaut, \ - step=-1, mailleur="MeshGems"): + step=-1, mailleur="MeshGems", nro_cas=None): """procédure complète fissure générale""" logging.info('start') - logging.info("Usage du mailleur %s", mailleur) + logging.info("Usage du mailleur %s pour le cas n°%s", mailleur, nro_cas) shapeDefaut = shapesFissure[0] # faces de fissure, débordant @@ -100,17 +104,19 @@ def construitFissureGenerale(shapesFissure, shapeFissureParams, \ # --- restriction de la face de fissure au domaine solide : # partition face fissure étendue par fillings, on garde la face interne - facesPortFissure = restreintFaceFissure(shapeDefaut, facesDefaut, pointInterne) + facesPortFissure = restreintFaceFissure(shapeDefaut, facesDefaut, pointInterne, \ + nro_cas) # --- pipe de fond de fissure, prolongé, partition face fissure par pipe # identification des edges communes pipe et face fissure (fissPipe, edgesPipeFiss, edgesFondFiss, wirePipeFiss, wireFondFiss) = \ - partitionneFissureParPipe(shapesFissure, elementsDefaut, rayonPipe) + partitionneFissureParPipe(shapesFissure, elementsDefaut, rayonPipe, \ + nro_cas) edgesFondFiss, edgesIdByOrientation = orderEdgesFromWire(wireFondFiss) - for i,edge in enumerate(edgesFondFiss): - geomPublishInFather(initLog.debug, wireFondFiss, edge, "edgeFondFiss%d"%i) + for i_aux, edge in enumerate(edgesFondFiss): + geomPublishInFather(initLog.debug, wireFondFiss, edge, "edgeFondFiss{}".format(i_aux), nro_cas) # --- peau et face de fissure # @@ -134,21 +140,24 @@ def construitFissureGenerale(shapesFissure, shapeFissureParams, \ edgeRadFacePipePeau, facesPipePeau = \ construitFissureGenerale_b( partitionsPeauFissFond, \ edgesPipeFiss, edgesFondFiss, wireFondFiss, aretesVivesC, \ - facesDefaut, centreFondFiss, rayonPipe, aretesVivesCoupees ) + facesDefaut, centreFondFiss, rayonPipe, aretesVivesCoupees, \ + nro_cas ) # --- identification des faces et edges de fissure externe pour maillage (faceFissureExterne, edgesPipeFissureExterneC, wirePipeFissureExterne, edgesPeauFissureExterneC) = \ - identifieFacesEdgesFissureExterne(fsFissuExt, edFisExtPe, edFisExtPi, edgesPipeFiss) + identifieFacesEdgesFissureExterne(fsFissuExt, edFisExtPe, edFisExtPi, edgesPipeFiss, \ + nro_cas) - # --- preparation maillage du pipe : + # --- préparation maillage du pipe : # - détections des points a respecter : jonction des edges/faces constituant la face de fissure externe au pipe # - points sur les edges de fond de fissure et edges pipe/face fissure, # - vecteurs tangents au fond de fissure (normal au disque maillé) - (centres, gptsdisks, raydisks) = calculePointsAxiauxPipe(edgesFondFiss, edgesIdByOrientation, facesDefaut, \ - centreFondFiss, wireFondFiss, wirePipeFiss, \ - lenSegPipe, rayonPipe, nbsegCercle, nbsegRad) + (centres, gptsdisks, raydisks) = calculePointsAxiauxPipe (edgesFondFiss, edgesIdByOrientation, facesDefaut, \ + centreFondFiss, wireFondFiss, wirePipeFiss, \ + lenSegPipe, rayonPipe, nbsegCercle, nbsegRad, \ + nro_cas) # --- recherche des points en trop (externes au volume à remailler) # - on associe chaque extrémité du pipe à une face filling @@ -175,11 +184,15 @@ def construitFissureGenerale(shapesFissure, shapeFissureParams, \ # --- maillage effectif du pipe - (meshPipe, meshPipeGroups, edgesCircPipeGroup) = construitMaillagePipe(gptsdisks, idisklim, nbsegCercle, nbsegRad) + (meshPipe, meshPipeGroups, edgesCircPipeGroup) = \ + construitMaillagePipe(gptsdisks, idisklim, nbsegCercle, nbsegRad, \ + nro_cas) # --- edges de bord, faces défaut à respecter - (internalBoundary, bordsLibres, grpAretesVives) = mailleAretesEtJonction(internalBoundary, aretesVivesCoupees, lgAretesVives) + (internalBoundary, bordsLibres, grpAretesVives) = \ + mailleAretesEtJonction(internalBoundary, aretesVivesCoupees, lgAretesVives, \ + nro_cas) # --- maillage faces de fissure @@ -187,7 +200,7 @@ def construitFissureGenerale(shapesFissure, shapeFissureParams, \ mailleFacesFissure(faceFissureExterne, \ edgesPipeFissureExterneC, edgesPeauFissureExterneC, \ meshPipeGroups, areteFaceFissure, rayonPipe, nbsegRad, \ - mailleur) + mailleur, nro_cas) # --- maillage faces de peau @@ -195,7 +208,7 @@ def construitFissureGenerale(shapesFissure, shapeFissureParams, \ facesPeaux, edCircPeau, ptCircPeau, gpedgeBord, gpedgeVifs, edFissPeau, \ bordsLibres, grpEdgesPeauFissureExterne, grpAretesVives, \ edgesCircPipeGroup, dmoyen, rayonPipe, nbsegRad, \ - mailleur) + mailleur, nro_cas) # --- regroupement des maillages du défaut @@ -203,14 +216,16 @@ def construitFissureGenerale(shapesFissure, shapeFissureParams, \ for mfpeau in meshesFacesPeau: listMeshes.append(mfpeau.GetMesh()) - meshBoiteDefaut = smesh.Concatenate(listMeshes, 1, 1, 1e-05,False) + # Attention à la précision... 1.e-5 est trop exigeant. Il faudrait mettre une valeur en cohérence avec les tailles de mailles. + meshBoiteDefaut = smesh.Concatenate(listMeshes, 1, 1, 1.e-04) + putName(meshBoiteDefaut, "boiteDefaut", i_pref=nro_cas) # Maillage complet maillageComplet = construitFissureGenerale_c( maillageSain, meshBoiteDefaut, \ zoneDefaut, zoneDefaut_skin, zoneDefaut_internalFaces, zoneDefaut_internalEdges, \ facesPortFissure, \ maillageFissureParams, \ - mailleur ) + mailleur, nro_cas ) if salome.sg.hasDesktop(): salome.sg.updateObjBrowser()