|
|
|
@ -67,8 +67,13 @@ export class FeedingToolPath extends Singleton
|
|
|
|
|
|
|
|
|
|
let offsetDist = 0;
|
|
|
|
|
|
|
|
|
|
let isRect = IsRect(outline).isRect;
|
|
|
|
|
|
|
|
|
|
while (true)
|
|
|
|
|
{
|
|
|
|
|
if ((!isOut || offsetDist >= knifRadius) && isRect)
|
|
|
|
|
offsetDist += knifRadius * 2;
|
|
|
|
|
else
|
|
|
|
|
offsetDist += knifRadius;
|
|
|
|
|
|
|
|
|
|
let retCus: Curve[] = [];
|
|
|
|
@ -76,8 +81,14 @@ export class FeedingToolPath extends Singleton
|
|
|
|
|
let tempOffsetCus = GetOffsetCurves(outline, offsetDist * dir);
|
|
|
|
|
retCus.push(...tempOffsetCus);
|
|
|
|
|
|
|
|
|
|
if (retCus.length === 0) break;
|
|
|
|
|
//最后一次内偏移如果是矩形,需在偏移一个刀半径避免没切到中心
|
|
|
|
|
if (retCus.length === 0 && isRect)
|
|
|
|
|
{
|
|
|
|
|
offsetDist -= knifRadius;
|
|
|
|
|
retCus.push(...GetOffsetCurves(outline, offsetDist * dir));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (retCus.length === 0) break;
|
|
|
|
|
//是否和孤岛相交
|
|
|
|
|
let isInt = false;
|
|
|
|
|
for (let c of retCus)
|
|
|
|
|