!1160 优化:矩形槽走刀

pull/1160/MERGE
ZoeLeeFZ 4 years ago committed by ChenX
parent 09b982d734
commit d8a855060f

@ -192,9 +192,9 @@ exports[`复杂造型测试: 走刀数量 2`] = `2`;
exports[`带孔造型板件 1`] = `"3600.00000"`;
exports[`带孔造型板件 2`] = `"54665.25127"`;
exports[`带孔造型板件 2`] = `"31857.87785"`;
exports[`带孔造型板件 3`] = `"4667.08666"`;
exports[`带孔造型板件 3`] = `"4397.08666"`;
exports[`带孔造型板件 4`] = `"2195.97412"`;
@ -202,9 +202,9 @@ exports[`带孔造型板件 5`] = `"1209.69294"`;
exports[`带孔造型板件 6`] = `"3600.00000"`;
exports[`带孔造型板件 7`] = `"54665.25127"`;
exports[`带孔造型板件 7`] = `"31857.87785"`;
exports[`带孔造型板件 8`] = `"4667.08666"`;
exports[`带孔造型板件 8`] = `"4397.08666"`;
exports[`带孔造型板件 9`] = `"2195.97412"`;

@ -67,17 +67,28 @@ export class FeedingToolPath extends Singleton
let offsetDist = 0;
let isRect = IsRect(outline).isRect;
while (true)
{
offsetDist += knifRadius;
if ((!isOut || offsetDist >= knifRadius) && isRect)
offsetDist += knifRadius * 2;
else
offsetDist += knifRadius;
let retCus: Curve[] = [];
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)

Loading…
Cancel
Save