From 1102fe549af9be24e0dc9dd16dc013ebd35fc7f8 Mon Sep 17 00:00:00 2001 From: ZoeLeeFZ Date: Thu, 23 Jul 2020 14:49:58 +0800 Subject: [PATCH] =?UTF-8?q?!1162=20=E4=BF=AE=E5=A4=8D:=E6=8B=86=E5=8D=95?= =?UTF-8?q?=E8=BD=AE=E5=BB=93=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/GraphicsSystem/CalcEdgeSealing.ts | 22 +++++++++++++++++++--- 1 file changed, 19 insertions(+), 3 deletions(-) diff --git a/src/GraphicsSystem/CalcEdgeSealing.ts b/src/GraphicsSystem/CalcEdgeSealing.ts index 7df7f75f1..112bbef0b 100644 --- a/src/GraphicsSystem/CalcEdgeSealing.ts +++ b/src/GraphicsSystem/CalcEdgeSealing.ts @@ -127,7 +127,8 @@ export function CalcEdgeSealing(cus: Curve[]) for (let i = 0; i < cus.length; i++) { let frontLine = cus[i]; - let laterLine = cus[FixIndex(i + 1, cus)]; + let laterIndex = FixIndex(i + 1, cus); + let laterLine = cus[laterIndex]; if (equalv3(frontLine.EndPoint, laterLine.StartPoint)) continue; let refLine = oldLine ?? frontLine; @@ -145,9 +146,24 @@ export function CalcEdgeSealing(cus: Curve[]) alert("获取封边错误,请提供图纸给相关人员"); return; } - frontLine.EndPoint = iPt; + let par = frontLine.GetParamAtPoint(iPt); + if (par < 0) + { + cus.splice(i, 1); + i -= 2; + } + else + frontLine.EndPoint = iPt; oldLine = equalv3(iPt, laterLine.EndPoint) ? laterLine.Clone() : null; - laterLine.StartPoint = iPt; + + par = laterLine.GetParamAtPoint(iPt); + if (par > 1) + { + cus.splice(laterIndex, 1); + i -= 2; + } + else + laterLine.StartPoint = iPt; } }