|
|
@ -101,9 +101,12 @@ export function ConverBoard2Part(board: Board, knifRadius = 3.5): Part
|
|
|
|
arrayRemoveDuplicateBySort(pts, (p1, p2) => equalv2(p1, p2, 1e-2));
|
|
|
|
arrayRemoveDuplicateBySort(pts, (p1, p2) => equalv2(p1, p2, 1e-2));
|
|
|
|
path = new Path(pts);
|
|
|
|
path = new Path(pts);
|
|
|
|
|
|
|
|
|
|
|
|
let area = path.BoundingBox.area - path.Area;
|
|
|
|
if (!(board.ContourCurve instanceof Circle))//如果是圆则不用优化成矩形
|
|
|
|
if (area < 15000 && pts.length > 6)
|
|
|
|
{
|
|
|
|
path = NestCache.CreatePath(board.Width, board.Height, knifRadius);
|
|
|
|
let area = path.BoundingBox.area - path.Area;
|
|
|
|
|
|
|
|
if (area < 15000 && pts.length > 6)
|
|
|
|
|
|
|
|
path = NestCache.CreatePath(board.Width, board.Height, knifRadius);
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
part.Init2(path, DefaultBin, Rotations[board.BoardProcessOption.lines]);
|
|
|
|
part.Init2(path, DefaultBin, Rotations[board.BoardProcessOption.lines]);
|
|
|
|
for (let m of board.BoardModeling)
|
|
|
|
for (let m of board.BoardModeling)
|
|
|
@ -116,7 +119,7 @@ export function ConverBoard2Part(board: Board, knifRadius = 3.5): Part
|
|
|
|
part.UserData.push(m.shape.Outline.Curve.Clone());
|
|
|
|
part.UserData.push(m.shape.Outline.Curve.Clone());
|
|
|
|
|
|
|
|
|
|
|
|
let path = new Path(pts);
|
|
|
|
let path = new Path(pts);
|
|
|
|
if (path.Area > 15000)
|
|
|
|
if ((m.shape.Outline.Curve instanceof Circle) || path.Area > 15000)//如果是圆,则不优化过滤小孔洞
|
|
|
|
part.AppendHole(path);
|
|
|
|
part.AppendHole(path);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|