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