修复:<异形优化算法>内部网洞转换成点表错误,该错误导致网洞过大

pull/1237/MERGE
ChenX 4 years ago
parent 316666cced
commit 5f3018e997

@ -110,7 +110,7 @@ export function ConverBoard2Part(board: Board, knifRadius = 3.5): Part
{
if (equaln(m.thickness, board.Thickness))
{
let curveW = new CurveWrap(m.shape.Outline.Curve, knifRadius);
let curveW = new CurveWrap(m.shape.Outline.Curve, knifRadius, false);
let pts = curveW.GetInsidePoints();
// let [, pts] = Curves2Points(m.shape.Outline.Curve, false, knifRadius);
part.UserData.push(m.shape.Outline.Curve.Clone());

@ -41,7 +41,7 @@ export function Curve2Path(curve: Circle | Polyline, outside = false): Path
}
else
{
let w = new CurveWrap(curve, 3);
let w = new CurveWrap(curve, 3, outside);
return new Path(outside ? w.GetOutsidePoints() : w.GetInsidePoints());
}
}
@ -59,13 +59,13 @@ export class CurveWrap
Points: Point[];
constructor(public Curve: Polyline | Circle, public KnifRadius = 3)
constructor(public Curve: Polyline | Circle, public KnifRadius = 3, public IsOutside: boolean = true)
{
this.BoundingBox = Curve.BoundingBox;
if (Curve instanceof Polyline)
{
let pts = Polylin2Points(Curve, true, 0)[1];
let pts = Polylin2Points(Curve, IsOutside, 0)[1];
let [spts, offset] = SimplifyDouglasPeucker(pts, KnifRadius ** 2 + KnifRadius);
if (spts.length !== pts.length)
{

Loading…
Cancel
Save