From 6cdf6a7020bb2d4042343813e43f213ebd83d55c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9E=97=E4=B8=89?= <940119273@qq.com> Date: Tue, 26 Mar 2024 09:41:21 +0000 Subject: [PATCH] =?UTF-8?q?!2638=20=E5=BC=80=E5=8F=91:=E5=9B=9E=E9=80=80?= =?UTF-8?q?=E5=A4=8D=E5=90=88=E5=AE=9E=E4=BD=93=E4=BE=A7=E9=9D=A2=E6=8C=96?= =?UTF-8?q?=E5=AD=94?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/Add-on/BoardCutting/AutoCuttingReactor.ts | 5 +---- src/Add-on/BoardCutting/CuttingUtils2.ts | 11 ++++------- src/Add-on/BoardCutting/HardwareCuttingReactor.ts | 13 +++++-------- src/DatabaseServices/3DSolid/ExtrudeHole.ts | 15 ++++----------- src/DatabaseServices/Entity/Board.ts | 9 --------- src/Reactor/RelevanceCuttingReactor.ts | 3 +-- 6 files changed, 15 insertions(+), 41 deletions(-) diff --git a/src/Add-on/BoardCutting/AutoCuttingReactor.ts b/src/Add-on/BoardCutting/AutoCuttingReactor.ts index a44af0d18..5ebc5a149 100644 --- a/src/Add-on/BoardCutting/AutoCuttingReactor.ts +++ b/src/Add-on/BoardCutting/AutoCuttingReactor.ts @@ -1,7 +1,6 @@ import { app } from "../../ApplicationServices/Application"; import { CommandNames } from "../../Common/CommandNames"; import { LogType } from "../../Common/Log"; -import { ExtrudeHole } from "../../DatabaseServices/3DSolid/ExtrudeHole"; import { Board } from "../../DatabaseServices/Entity/Board"; import { HardwareCompositeEntity } from "../../DatabaseServices/Hardware/HardwareCompositeEntity"; import { userConfig } from "../../Editor/UserConfig"; @@ -50,9 +49,7 @@ export class AutoCuttingReactor export async function AutoCutting(isRelevance: boolean, needRelevanceHardware = false) { let knifBoards = app.CommandReactor._createObejcts.filter(o => !o.IsErase && o instanceof Board) as Board[]; - let hardwareBoardsKnife = app.CommandReactor._createObejcts.filter(o => - !o.IsErase && (o instanceof HardwareCompositeEntity || o instanceof ExtrudeHole) - ) as (HardwareCompositeEntity | ExtrudeHole)[]; + let hardwareBoardsKnife = app.CommandReactor._createObejcts.filter(o => !o.IsErase && o instanceof HardwareCompositeEntity) as HardwareCompositeEntity[]; let knifBoardsSet = new Set(knifBoards);//使用set搜索性能更高 diff --git a/src/Add-on/BoardCutting/CuttingUtils2.ts b/src/Add-on/BoardCutting/CuttingUtils2.ts index e214679e2..1f5316ace 100644 --- a/src/Add-on/BoardCutting/CuttingUtils2.ts +++ b/src/Add-on/BoardCutting/CuttingUtils2.ts @@ -67,17 +67,14 @@ export function CuttingBoardByBoard(meats: Board[], knifs: Board[], isRelevance // down.EndProgress(); } -export async function CuttingBoardByHardware(meats: Board[], hardwares: (HardwareCompositeEntity | ExtrudeHole)[]): Promise +export async function CuttingBoardByHardware(meats: Board[], hardwares: HardwareCompositeEntity[]): Promise { - let knifeIdMap = new WeakMap(); + let knifeIdMap = new WeakMap(); let hardwareEnts: ExtrudeSolid[] = []; for (let hardware of hardwares) { - let es: (ExtrudeHole | ExtrudeSolid)[] = []; - if (hardware instanceof HardwareCompositeEntity) - es = hardware.GetAllEntity(true, e => e instanceof ExtrudeHole || e instanceof ExtrudeSolid) as (ExtrudeHole | ExtrudeSolid)[]; - else - es = [hardware]; + let es = hardware.GetAllEntity(true, e => e instanceof ExtrudeHole || e instanceof ExtrudeSolid) as (ExtrudeHole | ExtrudeSolid)[]; + for (let e of es) { let kf: ExtrudeSolid; diff --git a/src/Add-on/BoardCutting/HardwareCuttingReactor.ts b/src/Add-on/BoardCutting/HardwareCuttingReactor.ts index 7df178188..4876e6864 100644 --- a/src/Add-on/BoardCutting/HardwareCuttingReactor.ts +++ b/src/Add-on/BoardCutting/HardwareCuttingReactor.ts @@ -1,6 +1,5 @@ import { app } from "../../ApplicationServices/Application"; import { CommandNames } from "../../Common/CommandNames"; -import { ExtrudeHole } from "../../DatabaseServices/3DSolid/ExtrudeHole"; import { Board } from "../../DatabaseServices/Entity/Board"; import { HardwareCompositeEntity } from "../../DatabaseServices/Hardware/HardwareCompositeEntity"; import { CuttingBoardByHardware } from "./CuttingUtils2"; @@ -18,7 +17,7 @@ export class HardwareCuttingReactor if (!this.EnableHardware && !hardwareCmds.has(cmdName)) return; let brs = new Set(); - let hardwaresAndExtrudeHoles: (HardwareCompositeEntity | ExtrudeHole)[] = []; + let hardwares: HardwareCompositeEntity[] = []; for (let e of createObjects) { @@ -27,18 +26,16 @@ export class HardwareCuttingReactor if (e instanceof Board) brs.add(e); else if (e instanceof HardwareCompositeEntity && e.HardwareOption.isHole) - hardwaresAndExtrudeHoles.push(e); - else if (e instanceof ExtrudeHole && e.isHole) - hardwaresAndExtrudeHoles.push(e); + hardwares.push(e); } } - if (hardwaresAndExtrudeHoles.length > 0) - await this.StartReactor(hardwaresAndExtrudeHoles, brs); + if (hardwares.length > 0) + await this.StartReactor(hardwares, brs); }); } - async StartReactor(hardwares: (HardwareCompositeEntity | ExtrudeHole)[], ents: Set) + async StartReactor(hardwares: HardwareCompositeEntity[], ents: Set) { let brs: Board[] = []; for (let ent of app.Database.ModelSpace.Entitys) diff --git a/src/DatabaseServices/3DSolid/ExtrudeHole.ts b/src/DatabaseServices/3DSolid/ExtrudeHole.ts index 7a3573c54..ec4a58679 100644 --- a/src/DatabaseServices/3DSolid/ExtrudeHole.ts +++ b/src/DatabaseServices/3DSolid/ExtrudeHole.ts @@ -20,7 +20,6 @@ import { DragPointType } from "../Entity/DragPointType"; import { ExtrudeContourCurve, ExtrudeSolid } from "../Entity/Extrude"; import { GenUVForWorld } from "../Entity/GenUVForWorld"; import { Polyline } from "../Entity/Polyline"; -import { ObjectId } from "../ObjectId"; import { PhysicalMaterialRecord } from "../PhysicalMaterialRecord"; import { Shape } from "../Shape"; import { OBB } from './../../Geometry/OBB/obb'; @@ -35,7 +34,6 @@ export class ExtrudeHole extends Hole protected _knifeRadius: number = 3; @AutoRecord isHole = true; @AutoRecord isThrough = false; - @AutoRecord RelevanceBoards: ObjectId[] = []; get KnifeRadius() { @@ -490,16 +488,12 @@ export class ExtrudeHole extends Hole else this.type = GangDrillType.Ljg; + //回退版本5弃用 if (ver > 4) { let count = file.Read(); - this.RelevanceBoards.length = 0; for (let i = 0; i < count; i++) - { - let id = file.ReadSoftObjectId(); - if (id) - this.RelevanceBoards.push(id); - } + file.ReadSoftObjectId(); } this.Update(); @@ -515,8 +509,7 @@ export class ExtrudeHole extends Hole file.Write(this.isThrough); file.Write(this.type); - file.Write(this.RelevanceBoards.length); - for (let id of this.RelevanceBoards) - file.WriteSoftObjectId(id); + //ver= 5 弃用 + file.Write(0); } } diff --git a/src/DatabaseServices/Entity/Board.ts b/src/DatabaseServices/Entity/Board.ts index dea2a6353..3140e7e03 100644 --- a/src/DatabaseServices/Entity/Board.ts +++ b/src/DatabaseServices/Entity/Board.ts @@ -433,15 +433,6 @@ export class Board extends ExtrudeSolid } } } - else if (ent instanceof ExtrudeHole) - { - if (ent.isHole) - { - let g = ent.Convert2ExtrudeSolid(); - g.__TempIndexVersion__ = { Index: ent.Id.Index, Version: ent.__UpdateVersion__ }; - knifs.push(g); - } - } } } diff --git a/src/Reactor/RelevanceCuttingReactor.ts b/src/Reactor/RelevanceCuttingReactor.ts index 54cd5b8e5..7e2a5cb08 100644 --- a/src/Reactor/RelevanceCuttingReactor.ts +++ b/src/Reactor/RelevanceCuttingReactor.ts @@ -2,7 +2,6 @@ import { end } from "xaop"; import { app, ApplicationService } from "../ApplicationServices/Application"; import { CommandNames } from "../Common/CommandNames"; import { Sleep } from "../Common/Sleep"; -import { ExtrudeHole } from "../DatabaseServices/3DSolid/ExtrudeHole"; import { CADObject } from "../DatabaseServices/CADObject"; import { CommandHistoryRecord } from "../DatabaseServices/CommandHistoryRecord"; import { CreateObjectData } from "../DatabaseServices/CreateObjectData"; @@ -34,7 +33,7 @@ async function UpdateRelevanceGroove(ents: CADObject[]) needUpdateBoardSet.add(id); needUpdateBoardSet.add(e.Id);//修改逻辑,该实体可能被添加新的关联切割,所以没有更新槽 } - else if (e instanceof HardwareCompositeEntity || e instanceof ExtrudeHole) + else if (e instanceof HardwareCompositeEntity) { for (let id of e.RelevanceBoards) needUpdateBoardSet.add(id);