1 # -*- coding: utf-8 -*-
4 from geomsmesh import geompy
5 from orderEdgesFromWire import orderEdgesFromWire
7 # -----------------------------------------------------------------------------
8 # --- prolongation d'un wire par deux segments tangents
10 def prolongeWire(aWire, extrem, norms, long):
14 if geompy.NumberOfEdges(aWire) > 1:
15 edges = geompy.ExtractShapes(aWire, geompy.ShapeType["EDGE"])
21 for i, v1 in enumerate(extrem):
22 exts = [geompy.MakeTranslationVectorDistance(v1, norms[i], l) for l in (-long, long)]
23 dists = [(geompy.MinDistance(v, aWire), i , v) for i, v in enumerate(exts)]
26 #v2 = geompy.MakeTranslationVectorDistance(v1, norms[i], long)
27 edge = geompy.MakeEdge(v1, v2)
29 edgesBout.append(edge)
31 geompy.addToStudy(edge,name)
33 wireProlonge = geompy.MakeWire(edges)
34 geompy.addToStudy(wireProlonge, "wireProlonge")
36 logging.warning("probleme MakeWire, approche pas a pas")
41 edgelist, accessList = orderEdgesFromWire(aWire)
42 edge1 = edgelist[accessList[0]]
43 if geompy.MinDistance(edgesBout[0], edge1) < 1.e-4 :
49 wireProlonge = edgesBout[i0]
50 for i in range(len(edgelist)):
51 wireProlonge = geompy.MakeWire([wireProlonge, edgelist[accessList[i]]])
52 geompy.addToStudy(wireProlonge, "wireProlonge_%d"%i)
53 wireProlonge = geompy.MakeWire([wireProlonge,edgesBout[i1]])
54 geompy.addToStudy(wireProlonge, "wireNonProlonge")
55 logging.warning("prolongation wire pas a pas OK")