From ca0db2470495b8e2c583d1076c4ed4d350372a50 Mon Sep 17 00:00:00 2001 From: paullee0 Date: Mon, 18 Mar 2019 01:56:23 +0800 Subject: [PATCH] Fix connect() bug - If prev v2 had been calculated, do not calculate again, just use it as current v1 - avoid chance of slight difference in result --- src/Mod/Draft/DraftGeomUtils.py | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/src/Mod/Draft/DraftGeomUtils.py b/src/Mod/Draft/DraftGeomUtils.py index b1ee4ad737..824740e008 100644 --- a/src/Mod/Draft/DraftGeomUtils.py +++ b/src/Mod/Draft/DraftGeomUtils.py @@ -1223,6 +1223,8 @@ def offsetWire(wire,dvec,bind=False,occ=False): def connect(edges,closed=False): '''connects the edges in the given list by their intersections''' nedges = [] + v2 = None + for i in range(len(edges)): curr = edges[i] #print("debug: DraftGeomUtils.connect edge ",i," : ",curr.Vertexes[0].Point,curr.Vertexes[-1].Point) @@ -1240,7 +1242,13 @@ def connect(edges,closed=False): else: next = None if prev: - #print("debug: DraftGeomUtils.connect prev : ",prev.Vertexes[0].Point,prev.Vertexes[-1].Point) + #print("debug: DraftGeomUtils.connect prev : ",prev.Vertexes[0].Point,prev.Vertexes[-1].Point) + + # If prev v2 had been calculated, do not calculate again, just use it as current v1 - avoid chance of slight difference in result + if v2: + v1 = v2 + + else: i = findIntersection(curr,prev,True,True) if i: v1 = i[DraftVecUtils.closest(curr.Vertexes[0].Point,i)]