From fdedf8fb4d36043145e8498244177aae16c806a5 Mon Sep 17 00:00:00 2001 From: Yorik van Havre Date: Thu, 6 Jul 2017 17:43:13 -0300 Subject: [PATCH] Arch: Gave small tolerance to pipe connectors in case their baselines don't join exactly --- src/Mod/Arch/ArchPipe.py | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/src/Mod/Arch/ArchPipe.py b/src/Mod/Arch/ArchPipe.py index 50b98f344b..d653992158 100644 --- a/src/Mod/Arch/ArchPipe.py +++ b/src/Mod/Arch/ArchPipe.py @@ -303,6 +303,7 @@ class _ArchPipeConnector(ArchComponent.Component): def execute(self,obj): tol = 1 # tolerance for alignment. This is only visual, we can keep it low... + ptol = 0.001 # tolerance for coincident points import math,Part,DraftGeomUtils,ArchCommands if len(obj.Pipes) < 2: @@ -315,16 +316,16 @@ class _ArchPipeConnector(ArchComponent.Component): order = [] for o in obj.Pipes: wires.append(o.Proxy.getWire(o)) - if wires[0].Vertexes[0].Point == wires[1].Vertexes[0].Point: + if wires[0].Vertexes[0].Point.sub(wires[1].Vertexes[0].Point).Length <= ptol: order = ["start","start"] point = wires[0].Vertexes[0].Point - elif wires[0].Vertexes[0].Point == wires[1].Vertexes[-1].Point: + elif wires[0].Vertexes[0].Point.sub(wires[1].Vertexes[-1].Point).Length <= ptol: order = ["start","end"] point = wires[0].Vertexes[0].Point - elif wires[0].Vertexes[-1].Point == wires[1].Vertexes[-1].Point: + elif wires[0].Vertexes[-1].Point.sub(wires[1].Vertexes[-1].Point).Length <= ptol: order = ["end","end"] point = wires[0].Vertexes[-1].Point - elif wires[0].Vertexes[-1].Point == wires[1].Vertexes[0].Point: + elif wires[0].Vertexes[-1].Point.sub(wires[1].Vertexes[0].Point).Length <= ptol: order = ["end","start"] point = wires[0].Vertexes[-1].Point else: