X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FTools%2FblocFissure%2Fgmu%2FprolongeWire.py;fp=src%2FTools%2FblocFissure%2Fgmu%2FprolongeWire.py;h=72e766dffec6d199cfe0c2e67701314331107445;hb=e9e7af000e6d84b90aaa62d06f8c28ab093b0745;hp=0000000000000000000000000000000000000000;hpb=8c0cc49261c88cde61a96c8642ac89e061ff1fd8;p=modules%2Fsmesh.git diff --git a/src/Tools/blocFissure/gmu/prolongeWire.py b/src/Tools/blocFissure/gmu/prolongeWire.py new file mode 100644 index 000000000..72e766dff --- /dev/null +++ b/src/Tools/blocFissure/gmu/prolongeWire.py @@ -0,0 +1,29 @@ +# -*- coding: utf-8 -*- + +import logging +from geomsmesh import geompy + +# ----------------------------------------------------------------------------- +# --- prolongation d'un wire par deux segments tangents + +def prolongeWire(aWire, extrem, norms, long): + """ + """ + logging.info("start") + if geompy.NumberOfEdges(aWire) > 1: + edges = geompy.ExtractShapes(aWire, geompy.ShapeType["EDGE"]) + else: + edges = [aWire] + for i, v1 in enumerate(extrem): + exts = [geompy.MakeTranslationVectorDistance(v1, norms[i], l) for l in (-long, long)] + dists = [(geompy.MinDistance(v, aWire), i , v) for i, v in enumerate(exts)] + dists.sort() + v2 = dists[-1][-1] + #v2 = geompy.MakeTranslationVectorDistance(v1, norms[i], long) + edge = geompy.MakeEdge(v1, v2) + edges.append(edge) + name = "extrem%d"%i + #geompy.addToStudy(edge,name) + wireProlonge = geompy.MakeWire(edges) + geompy.addToStudy(wireProlonge, "wireProlonge") + return wireProlonge