!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 // Jest Snapshot v1, https://goo.gl/fbAQLP
exports[`丢失线段板件 1`] = `538651.2759963807`; exports[`丢失线段板件 1`] = `538651.2759963808`;
exports[`丢失线段板件 2`] = `398758.87896958226`; exports[`丢失线段板件 2`] = `398758.87896958226`;
@ -24,8 +24,8 @@ exports[`异型板件,非常规坐标系 1`] = `75939516.39226122`;
exports[`异型板件,非常规坐标系 2`] = `75863286.03232267`; exports[`异型板件,非常规坐标系 2`] = `75863286.03232267`;
exports[`异型板件,非常规坐标系 3`] = `75694680.60847881`; exports[`异型板件,非常规坐标系 3`] = `75694680.60847883`;
exports[`异型板件,非相切圆弧 1`] = `635612.2751433643`; 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 { EBoardKeyList } from "../Common/BoardKeyList";
import { FixIndex } from "../Common/Utils"; import { FixIndex } from "../Common/Utils";
import { Board } from "../DatabaseServices/Entity/Board"; import { Board } from "../DatabaseServices/Entity/Board";
@ -120,21 +119,31 @@ export function CalcEdgeSealing(cus: Curve[])
{ {
if (cus.length <= 1) if (cus.length <= 1)
return; return;
let oldLine: Curve;
let firstLine = cus[0].Clone();
for (let i = 0; i < cus.length; i++) for (let i = 0; i < cus.length; i++)
{ {
let frontLine = cus[i]; let frontLine = cus[i];
let laterLine = cus[FixIndex(i + 1, cus)]; let laterLine = cus[FixIndex(i + 1, cus)];
if (equalv3(frontLine.EndPoint, laterLine.StartPoint)) if (equalv3(frontLine.EndPoint, laterLine.StartPoint))
continue; 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 => let tPts = iPts.filter(p =>
frontLine.PtOnCurve(p) refLine.PtOnCurve(p)
&& laterLine.PtOnCurve(p) && refLine2.PtOnCurve(p)
); );
let iPt = SelectNearP(tPts.length > 0 ? tPts : iPts, frontLine.EndPoint); let iPt = SelectNearP(tPts.length > 0 ? tPts : iPts, frontLine.EndPoint);
if (!iPt)
{
alert("获取封边错误,请提供图纸给相关人员");
return;
}
frontLine.EndPoint = iPt; frontLine.EndPoint = iPt;
oldLine = equalv3(iPt, laterLine.EndPoint) ? laterLine.Clone() : null;
laterLine.StartPoint = iPt; laterLine.StartPoint = iPt;
} }
} }

Loading…
Cancel
Save