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

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

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

@ -201,8 +201,9 @@ export class Command_KJLImport implements Command
await ParseModel(m, roomName, gName, materialMap); 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 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) if (ents.length === 0)
return true; return true;
@ -226,6 +227,9 @@ export class Command_KJLImport implements Command
CuttingBoardByBoard(allBrs, bbrs); CuttingBoardByBoard(allBrs, bbrs);
} }
//直接调用五金挖孔
await app._hardwareCuttingReactor.StartReactor(hws, new Set);
} }
return !ok; return !ok;

Loading…
Cancel
Save