!607 优化封边连接

pull/607/MERGE
ZoeLeeFZ 5 years ago committed by ChenX
parent 7748d68b5a
commit 13e3433f2d

@ -1,6 +1,6 @@
// Jest Snapshot v1, https://goo.gl/fbAQLP
exports[`丢失线段板件 1`] = `538651.2759963807`;
exports[`丢失线段板件 1`] = `538651.2759963808`;
exports[`丢失线段板件 2`] = `398758.87896958226`;
@ -24,8 +24,8 @@ exports[`异型板件,非常规坐标系 1`] = `75939516.39226122`;
exports[`异型板件,非常规坐标系 2`] = `75863286.03232267`;
exports[`异型板件,非常规坐标系 3`] = `75694680.60847881`;
exports[`异型板件,非常规坐标系 3`] = `75694680.60847883`;
exports[`异型板件,非相切圆弧 1`] = `635612.2751433643`;
exports[`异型板件,非相切圆弧 2`] = `626242.2196800548`;
exports[`异型板件,非相切圆弧 2`] = `626242.2196800549`;

@ -1,4 +1,3 @@
import { Vector3 } from "three";
import { EBoardKeyList } from "../Common/BoardKeyList";
import { FixIndex } from "../Common/Utils";
import { Board } from "../DatabaseServices/Entity/Board";
@ -120,21 +119,31 @@ export function CalcEdgeSealing(cus: Curve[])
{
if (cus.length <= 1)
return;
let oldLine: Curve;
let firstLine = cus[0].Clone();
for (let i = 0; i < cus.length; i++)
{
let frontLine = cus[i];
let laterLine = cus[FixIndex(i + 1, cus)];
if (equalv3(frontLine.EndPoint, laterLine.StartPoint))
continue;
let iPts = frontLine.IntersectWith(laterLine, IntersectOption.ExtendBoth);
let refLine = oldLine ?? frontLine;
let refLine2 = i === cus.length - 1 ? firstLine : laterLine;
let iPts = refLine.IntersectWith(refLine2, IntersectOption.ExtendBoth);
let tPts = iPts.filter(p =>
frontLine.PtOnCurve(p)
&& laterLine.PtOnCurve(p)
refLine.PtOnCurve(p)
&& refLine2.PtOnCurve(p)
);
let iPt = SelectNearP(tPts.length > 0 ? tPts : iPts, frontLine.EndPoint);
if (!iPt)
{
alert("获取封边错误,请提供图纸给相关人员");
return;
}
frontLine.EndPoint = iPt;
oldLine = equalv3(iPt, laterLine.EndPoint) ? laterLine.Clone() : null;
laterLine.StartPoint = iPt;
}
}

Loading…
Cancel
Save