X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FTools%2FblocFissure%2Fgmu%2FcreePointsPipePeau.py;h=39ad5dbedabc7bc3df992ce61065f247db2103f3;hb=HEAD;hp=e13105eb776e096ec4e49b2a9ea18b18993f7741;hpb=3f80bd10608d0dfcc296dad35cabbcf0705b7af4;p=modules%2Fsmesh.git diff --git a/src/Tools/blocFissure/gmu/creePointsPipePeau.py b/src/Tools/blocFissure/gmu/creePointsPipePeau.py index e13105eb7..7f9857921 100644 --- a/src/Tools/blocFissure/gmu/creePointsPipePeau.py +++ b/src/Tools/blocFissure/gmu/creePointsPipePeau.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -# Copyright (C) 2014-2021 EDF R&D +# Copyright (C) 2014-2024 CEA, EDF # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public @@ -33,33 +33,40 @@ def creePointsPipePeau(listEdges, idFacesDebouchantes, idFillingFromBout, logging.info('start') for n_edges, edges in enumerate(listEdges): - idf = idFacesDebouchantes[n_edges] # indice de face débouchante (facesPipePeau) - if idf >= 0: + + # idf = indice de face débouchante (facesPipePeau) ; idf vaut 0 ou 1 + idf = idFacesDebouchantes[n_edges] + logging.info("idf: %d", idf) + if ( idf >= 0 ): gptdsk = list() - if idf > 0: # idf vaut 0 ou 1 - idf = -1 # si idf vaut 1, on prend le dernier élément de la liste (1 ou 2 extrémités débouchent sur la face) + # si idf vaut 1, on prend le dernier élément de la liste (1 ou 2 extrémités débouchent sur la face) + if ( idf > 0 ): + idf = -1 centre = ptEdgeFond[idFillingFromBout[n_edges]][idf] - name = "centre%d"%idf + name = "centre_{}".format(idf) geomPublish(initLog.debug, centre, name) vertPipePeau = ptFisExtPi[idFillingFromBout[n_edges]][idf] geomPublishInFather(initLog.debug, centre, vertPipePeau, "vertPipePeau") grpsEdgesCirc = edCircPeau[idFillingFromBout[n_edges]] # liste de groupes + edgesCirc = list() for grpEdgesCirc in grpsEdgesCirc: edgesCirc += geompy.ExtractShapes(grpEdgesCirc, geompy.ShapeType["EDGE"], False) - for k, edge in enumerate(edges): + logging.debug("edgesCirc: %s", edgesCirc) + + for i_aux, edge in enumerate(edges): extrems = geompy.ExtractShapes(edge, geompy.ShapeType["VERTEX"], True) if geompy.MinDistance(centre, extrems[0]) < geompy.MinDistance(centre, extrems[1]): bout = extrems[1] else: bout = extrems[0] # ajustement du point extrémité (bout) sur l'edge circulaire en face de peau - logging.debug("edgesCirc: %s", edgesCirc) distEdgeCirc = [(geompy.MinDistance(bout, edgeCirc), k2, edgeCirc) for k2, edgeCirc in enumerate(edgesCirc)] distEdgeCirc.sort() logging.debug("distEdgeCirc: %s", distEdgeCirc) dist = projettePointSurCourbe(bout, distEdgeCirc[0][2]) - if (abs(dist) < 0.02) or (abs(1.-dist) < 0.02): # les points très proches d'une extrémité doivent y être mis précisément. + # les points très proches d'une extrémité doivent y être mis précisément. + if (abs(dist) < 0.02) or (abs(1.-dist) < 0.02): extrCircs = geompy.ExtractShapes(distEdgeCirc[0][2], geompy.ShapeType["VERTEX"], True) if geompy.MinDistance(bout, extrCircs[0]) < geompy.MinDistance(bout, extrCircs[1]): bout = extrCircs[0] @@ -67,7 +74,7 @@ def creePointsPipePeau(listEdges, idFacesDebouchantes, idFillingFromBout, bout = extrCircs[1] else: bout = geompy.MakeVertexOnCurve(distEdgeCirc[0][2], dist) - name ="bout%d"%k + name = "bout_{}".format(i_aux) geomPublishInFather(initLog.debug, centre, bout, name) # enregistrement des points dans la structure points = list() @@ -78,6 +85,8 @@ def creePointsPipePeau(listEdges, idFacesDebouchantes, idFillingFromBout, points[0] = centre points[-1] = bout gptdsk.append(points) + + # Enregistrement des extrémités if n_edges == 0: gptsdisks[idisklim[0] -1] = gptdsk idisklim[0] = idisklim[0] -1 @@ -85,4 +94,4 @@ def creePointsPipePeau(listEdges, idFacesDebouchantes, idFillingFromBout, gptsdisks[idisklim[1] +1] = gptdsk idisklim[1] = idisklim[1] +1 - return (gptsdisks, idisklim) + return gptsdisks