Salome HOME
pilotage de sfaces de peua
authorGERALD NICOLAS <D68518@dsp0864451.atlas.edf.fr>
Fri, 16 Apr 2021 17:17:25 +0000 (19:17 +0200)
committerGERALD NICOLAS <D68518@dsp0864451.atlas.edf.fr>
Fri, 16 Apr 2021 17:17:25 +0000 (19:17 +0200)
src/Tools/blocFissure/gmu/identifieEdgesPeau.py
src/Tools/blocFissure/gmu/identifieEdgesPeau_a.py
src/Tools/blocFissure/gmu/identifieEdgesPeau_b.py
src/Tools/blocFissure/gmu/identifieEdgesPeau_c.py
src/Tools/blocFissure/gmu/mailleFacesPeau.py

index ca1972af5bc564ff915de08ee5b83298d6be8fee..c4cbe095cebdb760b4ebe8d6170a758314a0f612 100644 (file)
@@ -30,13 +30,15 @@ def identifieEdgesPeau(edgesFissExtPipe, verticesPipePeau, facePeau, facesPeauSo
                        nro_cas=None):
   """Identification précise des edges et disques des faces de peau selon index extremité fissure"""
   logging.info('start')
+  logging.info('Nombre de sommets : len(verticesPipePeau) = %d', len(verticesPipePeau))
 
   facesPipePeau = [None for _ in range(len(edgesFissExtPipe))]
   endsEdgeFond = [None for _ in range(len(edgesFissExtPipe))]
   edgeRadFacePipePeau = [None for _ in range(len(edgesFissExtPipe))]
 
   edgesListees = list()
-  if len(verticesPipePeau) > 0: # --- au moins une extrémité du pipe sur cette face de peau
+  # --- au moins une extrémité du pipe sur cette face de peau
+  if verticesPipePeau:
 
     edgesCircPeau, verticesCircPeau = identifieEdgesPeau_a(edgesFissExtPipe, facePeau, facesPeauSorted, edgesPeauFondIn, \
                                                            endsEdgeFond, facesPipePeau, edgeRadFacePipePeau, edgesListees, \
@@ -53,7 +55,6 @@ def identifieEdgesPeau(edgesFissExtPipe, verticesPipePeau, facePeau, facesPeauSo
                                                       nro_cas)
 
   # ---  edges de la face de peau partagées avec la face de fissure
-
   edgesFissurePeau = identifieEdgesPeau_c(verticesPipePeau, facePeau, edgesListees, verticesCircPeau)
 
   return (endsEdgeFond, facesPipePeau, edgeRadFacePipePeau,
index 1f10ceb5e1c80b5b7bfaa84979c8f67d8e38df4a..b13a9ec492ddf42a771a2454fbce054ab1e4b20c 100644 (file)
@@ -44,9 +44,9 @@ def identifieEdgesPeau_a(edgesFissExtPipe, facePeau, facesPeauSorted, edgesPeauF
             j_aux_0 = j_aux
             break
         sharedVertices = geompy.GetSharedShapesMulti([face, edgesPeauFondIn[j_aux_0]], geompy.ShapeType["VERTEX"])
-        nameFace = "facePipePeau{}".format(i_aux)
-        nameVert = "endEdgeFond{}".format(i_aux)
-        nameEdge = "edgeRadFacePipePeau{}".format(i_aux)
+        nameFace = "facePipePeau_{}".format(i_aux)
+        nameVert = "endEdgeFond_{}".format(i_aux)
+        nameEdge = "edgeRadFacePipePeau_{}".format(i_aux)
         facesPipePeau[i_aux] = face
         endsEdgeFond[i_aux] = sharedVertices[0]
         geomPublish(initLog.debug, face, nameFace, nro_cas)
@@ -58,23 +58,26 @@ def identifieEdgesPeau_a(edgesFissExtPipe, facePeau, facesPeauSorted, edgesPeauF
             geomPublish(initLog.debug, edge, nameEdge, nro_cas)
             break
 
-  # --- edges circulaires de la face de peau et points de jonction de la face externe de fissure
-  logging.debug("facesPipePeau: %s", facesPipePeau)
+  # --- edges elliptiques de la face de peau et points de jonction de la face externe de fissure
+  logging.info("Traitement des arêtes de '%s'", facePeau.GetName())
   edgesCircPeau = [None for _ in range(len(facesPipePeau))]
   verticesCircPeau = [None for _ in range(len(facesPipePeau))]
   for i_aux,fcirc in enumerate(facesPipePeau):
+    logging.info(". Partage avec la face '%s'", fcirc.GetName())
     edges = geompy.GetSharedShapesMulti([facePeau, fcirc], geompy.ShapeType["EDGE"])
     grpEdgesCirc = geompy.CreateGroup(facePeau, geompy.ShapeType["EDGE"])
     geompy.UnionList(grpEdgesCirc, edges)
     edgesCircPeau[i_aux] = grpEdgesCirc
-    name = "edgeCirc{}".format(i_aux)
+    name = "edgeCirc_{}".format(i_aux)
     geomPublishInFather(initLog.always, facePeau, grpEdgesCirc, name)
     edgesListees = edgesListees + edges
     vertices = geompy.GetSharedShapesMulti([facePeau, fcirc], geompy.ShapeType["VERTEX"])
     grpVertCircPeau = geompy.CreateGroup(facePeau, geompy.ShapeType["VERTEX"])
     geompy.UnionList(grpVertCircPeau, vertices)
     verticesCircPeau[i_aux] = grpVertCircPeau
-    name = "pointEdgeCirc{}".format(i_aux)
-    geomPublishInFather(initLog.debug, facePeau, grpVertCircPeau, name)
+    name = "pointEdgeCirc_{}".format(i_aux)
+    geomPublishInFather(initLog.info, facePeau, grpVertCircPeau, name)
+
+  logging.info('==> Nombre de sommets : len(verticesCircPeau) = %d', len(verticesCircPeau))
 
   return edgesCircPeau, verticesCircPeau
index df79b8b1ebb86031c157082576c4057b7af2bf07..3044d61dedb0b1fcbe48222283f15967c73465c6 100644 (file)
@@ -36,7 +36,7 @@ def identifieEdgesPeau_b(facePeau, edgesListees, \
   edgesBords = list()
   for i_aux, edge in enumerate(edgesFilling):
     edgepeau = geompy.GetInPlace(facePeau, edge)
-    name = "edgepeau{}".format(i_aux)
+    name = "edgepeau_{}".format(i_aux)
     geomPublishInFather(initLog.debug, facePeau,edgepeau, name)
     logging.debug("edgepeau %s", geompy.ShapeInfo(edgepeau))
     if geompy.ShapeInfo(edgepeau)['EDGE'] > 1:
index ffcdd0c329995e31e33f4b2091df4dcfbffb72e1..afe027f1fb0b5c85da687baee92cd7ee95d41e42 100644 (file)
@@ -31,27 +31,42 @@ from .substractSubShapes import substractSubShapes
 def identifieEdgesPeau_c(verticesPipePeau, facePeau, edgesListees, verticesCircPeau):
   """edges de la face de peau partagées avec la face de fissure"""
   logging.info('start')
+  logging.info("Traitement des arêtes de '%s'", facePeau.GetName())
+  logging.info('Nombre de sommets : len(verticesPipePeau) = %d', len(verticesPipePeau))
+  #logging.info('verticesPipePeau = %s', verticesPipePeau)
+  logging.info('Nombre de sommets : len(verticesCircPeau) = %d', len(verticesCircPeau))
+  #logging.info('verticesCircPeau = %s', verticesCircPeau)
 
   edgesPeau = geompy.ExtractShapes(facePeau, geompy.ShapeType["EDGE"], False)
+  logging.info('Nombre total d arêtes de la peau : len(edgesPeau) = %d', len(edgesPeau))
+
   edges = substractSubShapes(facePeau, edgesPeau, edgesListees)
-  edgesFissurePeau = list()
 
-  if len(verticesPipePeau) > 0: # --- au moins une extrémité du pipe sur cette face de peau
-    edgesFissurePeau = [None for _ in range(len(verticesCircPeau))] # edges associés aux extrémités du pipe, en premier
+  edgesFissurePeau = list()
+# --- au moins une extrémité du pipe sur cette face de peau
+  if verticesPipePeau:
+    # En premier, les edges associés aux extrémités du pipe
+    edgesFissurePeau = [None for _ in range(len(verticesCircPeau))]
     for edge in edges:
-      for i_aux, grpVert in enumerate(verticesCircPeau):
-        if (geompy.MinDistance(grpVert, edge) < 1.e-3) and (edge not in edgesFissurePeau):
+      for i_aux, vertex in enumerate(verticesCircPeau):
+        logging.info(".. distance %s", geompy.MinDistance(vertex, edge))
+        if ( ( geompy.MinDistance(vertex, edge) < 1.e-3 ) and ( edge not in edgesFissurePeau ) ):
           edgesFissurePeau[i_aux] = edge
-          name = "edgeFissurePeau{}".format(i_aux)
-          geomPublishInFather(initLog.debug, facePeau,  edge, name)
-    for edge in edges: # on ajoute après les edges manquantes
+          name = "edgeFissurePeau_{}".format(i_aux)
+          logging.info("... entrée de %s à la place %d", edge, i_aux)
+          geomPublishInFather(initLog.debug, facePeau, edge, name)
+    # Ensuite, on ajoute les edges manquantes
+    for edge in edges:
       if edge not in edgesFissurePeau:
+        logging.info("... ajout")
         edgesFissurePeau.append(edge)
 
   else:
     for i_aux, edge in enumerate(edges):
       edgesFissurePeau.append(edge)
       name = "edgeFissurePeau{}".format(i_aux)
-      geomPublishInFather(initLog.debug, facePeau,  edge, name)
+      geomPublishInFather(initLog.debug, facePeau, edge, name)
+
+  logging.info('==> Nombre d arêtes : len(edgesFissurePeau) = %d', len(edgesFissurePeau))
 
   return edgesFissurePeau
index e83e79f404f05129b9e7e58818d3566ab6081116..9e56f5815dfb0825375342b33cc02b8ed1abf641 100644 (file)
@@ -95,7 +95,8 @@ def mailleFacesPeau(partitionsPeauFissFond, idFillingFromBout, facesDefaut, \
       geompy.UnionList(groupEdgesBordPeau, edgesFilling)
       geomPublishInFather(initLog.always, filling, groupEdgesBordPeau, "EdgesBords", nro_cas)
 
-      logging.info("UseExisting1DElements depuis '%s'", groupEdgesBordPeau.GetName())
+      logging.info("UseExisting1DElements sur la géométrie '%s' avec les mailles de '%s'", \
+                    groupEdgesBordPeau.GetName(), bordsLibres.GetName())
       algo1d = meshFacePeau.UseExisting1DElements(geom=groupEdgesBordPeau)
       putName(algo1d.GetSubMesh(), "bordsLibres", ifil, nro_cas)
       hypo1d = algo1d.SourceEdges([ bordsLibres ],0,0)
@@ -110,40 +111,44 @@ def mailleFacesPeau(partitionsPeauFissFond, idFillingFromBout, facesDefaut, \
       bordsVifs          = gpedgeVifs[ifil] # pour chaque face de peau : groupe subshape des edges aux bords correspondant à des arêtes vives
       edgesFissurePeau   = edFissPeau[ifil] # pour chaque face de peau : [subshape edge en peau des faces de fissure externes]
 
-      logging.info("UseExisting1DElements depuis groupEdgesBordPeau = '%s'", groupEdgesBordPeau.GetName())
+      logging.info("UseExisting1DElements sur la géométrie '%s' avec les mailles de '%s'", \
+                    groupEdgesBordPeau.GetName(), bordsLibres.GetName())
       algo1d = meshFacePeau.UseExisting1DElements(geom=groupEdgesBordPeau)
       putName(algo1d.GetSubMesh(), "bordsLibres", ifil, nro_cas)
       hypo1d = algo1d.SourceEdges([ bordsLibres ],0,0)
-      putName(hypo1d, "SourceEdges_{}".format(bordsLibres.GetName()), ifil, nro_cas)
+      putName(hypo1d, "SourceEdges_{}".format(bordsLibres.GetName()), i_pref=nro_cas)
 
       objet = geompy.MakeCompound(edgesFissurePeau)
       geomPublishInFather(initLog.always, facePeau, objet, "edgesFissurePeau")
-      logging.info("UseExisting1DElements depuis objet = '%s'", objet.GetName())
+      logging.info("UseExisting1DElements sur la géométrie '%s' avec les mailles de '%s'", \
+                    objet.GetName(), grpEdgesPeauFissureExterne.GetName())
       algo1d = meshFacePeau.UseExisting1DElements(geom=objet)
-      putName(algo1d.GetSubMesh(), "edgePeauFiss", ifil, nro_cas)
+      putName(algo1d.GetSubMesh(), objet.GetName(), i_pref=nro_cas)
       hypo1d = algo1d.SourceEdges([ grpEdgesPeauFissureExterne ],0,0)
-      putName(hypo1d, "SourceEdges_{}".format(grpEdgesPeauFissureExterne.GetName()), ifil, nro_cas)
+      putName(hypo1d, "SourceEdges_{}".format(grpEdgesPeauFissureExterne.GetName()), i_pref=nro_cas)
 
       if bordsVifs is not None:
-        logging.info("UseExisting1DElements depuis bordsVifs = '%s'", bordsVifs.GetName())
+        logging.info("UseExisting1DElements sur la géométrie '%s' avec les mailles de '%s'", \
+                      bordsVifs.GetName(), grpAretesVives.GetName())
         algo1d = meshFacePeau.UseExisting1DElements(geom=bordsVifs)
         putName(algo1d.GetSubMesh(), "bordsVifs", ifil, nro_cas)
         hypo1d = algo1d.SourceEdges([ grpAretesVives ],0,0)
-        putName(hypo1d, "SourceEdges_{}".format(grpAretesVives.GetName()), ifil, nro_cas)
+        putName(hypo1d, "SourceEdges_{}".format(grpAretesVives.GetName()), i_pref=nro_cas)
 
       for i_aux, edgeCirc in enumerate(edgesCircPeau):
         texte = "i_aux = {}".format(i_aux)
         logging.info(texte)
         if edgeCirc is not None:
-          logging.info("UseExisting1DElements depuis edgeCirc = '%s'", edgeCirc.GetName())
-          algo1d = meshFacePeau.UseExisting1DElements(geom=edgeCirc) # addToStudy() failed ?
-          name = "cercle{}".format(i_aux)
-          putName(algo1d.GetSubMesh(), name, ifil, nro_cas)
           if boutFromIfil[ifil] is None:
-            hypo1d = algo1d.SourceEdges([ edgesCircPipeGroup[i_aux] ],0,0)
+            groupe = edgesCircPipeGroup[i_aux]
           else:
-            hypo1d = algo1d.SourceEdges([ edgesCircPipeGroup[boutFromIfil[ifil]] ],0,0)
-          putName(hypo1d, "SourceEdges_" + name, ifil, nro_cas)
+            groupe = edgesCircPipeGroup[boutFromIfil[ifil]]
+          logging.info("UseExisting1DElements sur la géométrie '%s' avec les mailles de '%s'", \
+                        edgeCirc.GetName(), groupe.GetName())
+          algo1d = meshFacePeau.UseExisting1DElements(geom=edgeCirc) # addToStudy() failed ?
+          putName(algo1d.GetSubMesh(), groupe.GetName(), i_pref=nro_cas)
+          hypo1d = algo1d.SourceEdges([ groupe ],0,0)
+          putName(hypo1d, "SourceEdges_{}".format(groupe.GetName()), i_pref=nro_cas)
 
     is_done = meshFacePeau.Compute()
     text = "meshFacePeau {} .Compute".format(ifil)