优化:在应用异形轮廓时,尝试和旧的异形轮廓的高级封边和排钻进行映射

pull/1986/MERGE
ChenX 2 years ago
parent db3948f7b4
commit b7063ea572

@ -790,7 +790,38 @@ export class Board extends ExtrudeSolid
{
if (this.isRect)
ParseBoardRectHoleType(this, TempRectHoleOption);
else//之前不是异形,现在也不是异形时,对排钻边和封边进行映射,避免错误
{
let size = cu.BoundingBox.getSize(new Vector3);
let isRect = equaln(size.x * size.y, cu.Area, 0.1);
if (!isRect)
{
let indexMap: number[] = [];
for (let i = 0; i < cu.EndParam; i++)
{
let p = cu.GetPointAtParam(i + 0.5);
let cp = this.contourCurve.GetClosestPointTo(p, false);
let cparam = this.contourCurve.GetParamAtPoint2(cp);
indexMap.push(Math.floor(cparam));
}
let highDrill = [];
let highSealed = [];
for (let index of indexMap)
{
highDrill.push(this._BoardProcessOption.highDrill[index] ?? this._BoardProcessOption.drillType);
highSealed.push(this._BoardProcessOption.highSealed[index] ?? 0);
}
this._BoardProcessOption.highDrill = highDrill;
this._BoardProcessOption.highSealed = highSealed;
}
}
}
super.ContourCurve = cu;
if (this.isRect && TempRectHoleOption.up)

Loading…
Cancel
Save