!1837 酷家乐导入五金可挖孔

pull/1881/MERGE
黄诗津 2 years ago committed by ChenX
parent af2b76e4a6
commit e3a8146d85

@ -1,29 +1,29 @@
import { app } from "../../ApplicationServices/Application";
import { CommandNames } from "../../Common/CommandNames";
import { Board } from "../../DatabaseServices/Entity/Board";
import { HardwareCompositeEntity } from "../../DatabaseServices/Hardware/HardwareCompositeEntity";
import { CuttingBoardByHardware } from "./CuttingUtils2";
import { CommandNames } from "../../Common/CommandNames";
export class HardwareCuttingReactor
{
EnableHardware = true;
constructor()
{
const hardwareCmds = ["购买模块并插入", "插入模块", CommandNames.Door, CommandNames.Drawer];
const hardwareCmds = new Set(["购买模块并插入", "插入模块", CommandNames.Door, CommandNames.Drawer]);
app.CommandReactor.OnCommandEnd(async (cmdName, changeObjects, createObjects) =>
{
if (app.Viewer.isLayout) return;
if (!this.EnableHardware && !hardwareCmds.includes(cmdName)) return;
if (!this.EnableHardware && !hardwareCmds.has(cmdName)) return;
let brs: Board[] = [];
let brs = new Set<Board>();
let hardwares: HardwareCompositeEntity[] = [];
for (let e of createObjects)
{
if (!e.IsErase)
{
if (e instanceof Board)
brs.push(e);
brs.add(e);
else if (e instanceof HardwareCompositeEntity && e.HardwareOption.isHole)
hardwares.push(e);
}
@ -33,12 +33,13 @@ export class HardwareCuttingReactor
await this.StartReactor(hardwares, brs);
});
}
async StartReactor(hardwares: HardwareCompositeEntity[], ents: Board[])
async StartReactor(hardwares: HardwareCompositeEntity[], ents: Set<Board>)
{
let brs: Board[] = [];
for (let ent of app.Database.ModelSpace.Entitys)
{
if (!ent.IsErase && ent instanceof Board && !ents.includes(ent))
if (!ent.IsErase && ent instanceof Board && !ents.has(ent))
brs.push(ent);
}
await CuttingBoardByHardware(brs, hardwares);

@ -201,8 +201,9 @@ export class Command_KJLImport implements Command
await ParseModel(m, roomName, gName, materialMap);
}
let brs = app.CommandReactor._createObejcts.filter(obj => obj instanceof Board) as Board[];
let ents = app.CommandReactor._createObejcts.filter(obj => obj instanceof Entity) as Entity[];
let brs = ents.filter(en => en instanceof Board) as Board[];
let hws = ents.filter(en => en instanceof HardwareCompositeEntity).filter(hw => (hw as HardwareCompositeEntity).HardwareOption.isHole) as HardwareCompositeEntity[];
if (ents.length === 0)
return true;
@ -226,6 +227,9 @@ export class Command_KJLImport implements Command
CuttingBoardByBoard(allBrs, bbrs);
}
//直接调用五金挖孔
await app._hardwareCuttingReactor.StartReactor(hws, new Set);
}
return !ok;

Loading…
Cancel
Save