|
|
|
@ -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)
|
|
|
|
|