|
|
|
@ -39,6 +39,7 @@ interface DirBrs
|
|
|
|
|
const DEG90 = 90;//90°
|
|
|
|
|
export class Command_AutoDimBrs implements Command
|
|
|
|
|
{
|
|
|
|
|
maxThickness: number = 0;
|
|
|
|
|
async exec()
|
|
|
|
|
{
|
|
|
|
|
//选择板件
|
|
|
|
@ -55,11 +56,12 @@ export class Command_AutoDimBrs implements Command
|
|
|
|
|
return;
|
|
|
|
|
|
|
|
|
|
let brs = enRes.SelectSet.SelectEntityList as Board[];
|
|
|
|
|
|
|
|
|
|
this.maxThickness = 0;
|
|
|
|
|
//原数据转二维数组[[br0],[br1],[br2],[br3],[br4]...],并记录每组的Box
|
|
|
|
|
let brBoxs: Box3[] = [];
|
|
|
|
|
let brGroups: Board[][] = brs.map(item =>
|
|
|
|
|
{
|
|
|
|
|
this.maxThickness = Math.max(this.maxThickness, item.Thickness);
|
|
|
|
|
brBoxs.push(item.BoundingBox);
|
|
|
|
|
return [item];
|
|
|
|
|
});
|
|
|
|
@ -178,7 +180,7 @@ export class Command_AutoDimBrs implements Command
|
|
|
|
|
let ocs = new Matrix4().makeBasis(xv.normalize(), yv.negate().normalize(), zv.normalize());
|
|
|
|
|
ocs.setPosition(l.StartPoint);
|
|
|
|
|
|
|
|
|
|
let cuObb = new OBB(ocs, new Vector3(l.Length, 20, 20).multiplyScalar(0.5));
|
|
|
|
|
let cuObb = new OBB(ocs, new Vector3(l.Length, this.maxThickness ?? 20, this.maxThickness ?? 20).multiplyScalar(0.5));
|
|
|
|
|
let filterFunc = (b: Board) =>
|
|
|
|
|
{
|
|
|
|
|
if (!dirBrs[key].includes(b))
|
|
|
|
|