|
|
|
@ -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,8 +146,23 @@ export function CalcEdgeSealing(cus: Curve[])
|
|
|
|
|
alert("获取封边错误,请提供图纸给相关人员");
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
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;
|
|
|
|
|
|
|
|
|
|
par = laterLine.GetParamAtPoint(iPt);
|
|
|
|
|
if (par > 1)
|
|
|
|
|
{
|
|
|
|
|
cus.splice(laterIndex, 1);
|
|
|
|
|
i -= 2;
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
laterLine.StartPoint = iPt;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|