From cd0696b1c6df8f153e50bf5f74105e2bf4eb214b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9E=97=E4=B8=89?= <940119273@qq.com> Date: Fri, 5 Nov 2021 03:01:42 +0000 Subject: [PATCH] =?UTF-8?q?!1676=20=E5=A2=9E=E5=BC=BA:=E5=9B=BE=E6=A1=86?= =?UTF-8?q?=E7=BC=96=E8=BE=91=E5=A2=9E=E5=8A=A0=E9=9A=90=E8=97=8F=E6=A0=87?= =?UTF-8?q?=E6=B3=A8=E9=80=89=E9=A1=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/Add-on/DrawViewport.ts | 18 ++++++++++++------ src/Add-on/ViewortConfig/EditFrame.ts | 2 +- src/Add-on/Viewport/OneKeyLayout.ts | 7 ++++--- 3 files changed, 17 insertions(+), 10 deletions(-) diff --git a/src/Add-on/DrawViewport.ts b/src/Add-on/DrawViewport.ts index d8f3b3b3e..fb75a6f32 100644 --- a/src/Add-on/DrawViewport.ts +++ b/src/Add-on/DrawViewport.ts @@ -3,6 +3,7 @@ import { Vector3 } from "three"; import { app } from "../ApplicationServices/Application"; import { Sleep } from "../Common/Sleep"; import { Hole } from "../DatabaseServices/3DSolid/Hole"; +import { Dimension } from "../DatabaseServices/Dimension/Dimension"; import { Board } from "../DatabaseServices/Entity/Board"; import { Entity } from "../DatabaseServices/Entity/Entity"; import { HardwareCompositeEntity } from "../DatabaseServices/Hardware/HardwareCompositeEntity"; @@ -149,13 +150,14 @@ export class Draw4Viewport implements Command /** * 除了孔外的id和门板和非门板 * @param ens - * @returns ids//不含孔的所有实体, doorIds//门板, noDoorIds//非门板 } + * @returns ids//不含孔的所有实体, doorIds//门板, noDoorIds//非门板, dimIds//标注 } */ export function GetEntityIds(ens: Entity[]) { let ids: ObjectId[] = []; let noDoorIds: ObjectId[] = []; let doorIds: ObjectId[] = []; + let dimIds: ObjectId[] = []; for (let en of ens) { if (!(en instanceof Hole)) @@ -180,11 +182,13 @@ export function GetEntityIds(ens: Entity[]) continue; } } + else if (en instanceof Dimension) + dimIds.push(en.Id); noDoorIds.push(en.Id); } } - return { ids, doorIds, noDoorIds }; + return { ids, doorIds, noDoorIds, dimIds }; } export function Get4Viewport(p1: Vector3, p2: Vector3, ens: Entity[], view: number[], wire: string[], isHideDoor = false) @@ -393,12 +397,12 @@ export interface ICustomViewportInfo width: number; height: number; position: Vector3; - isHideDoor: string[]; + hideEntitys: string[]; } export function DrawCustomViewports(infos: ICustomViewportInfo[], ens: Entity[]) { - let { ids, doorIds } = GetEntityIds(ens); + let { ids, doorIds, dimIds } = GetEntityIds(ens); let vps: ViewportEntity[] = []; for (let info of infos) { @@ -406,11 +410,13 @@ export function DrawCustomViewports(infos: ICustomViewportInfo[], ens: Entity[]) vp.camera.LookAt(info.dir); vp.Position = info.position; vp.RenderType = info.renderType; - if (info.isHideDoor) - for (let t of info.isHideDoor) + if (info.hideEntitys) + for (let t of info.hideEntitys) { if (t === "door") vp.AppendHideObjects(doorIds); + if (t === "dim") + vp.AppendHideObjects(dimIds); } vp.AppendShowObjects(ids); vps.push(vp); diff --git a/src/Add-on/ViewortConfig/EditFrame.ts b/src/Add-on/ViewortConfig/EditFrame.ts index 36f9a1fc2..66b8ea80a 100644 --- a/src/Add-on/ViewortConfig/EditFrame.ts +++ b/src/Add-on/ViewortConfig/EditFrame.ts @@ -13,7 +13,7 @@ import { EditViewSettingStore } from "./EditViewport"; export class EditFrameStore { - @observable hName: [string, boolean][] = [["隐藏门板", false]]; + @observable hName: [string, boolean][] = [["隐藏门板", false], ["隐藏标注", false]]; @observable cName: [string, boolean][] = [["房间名", false], ["柜名", false], ["板材名", false], ["材料", false], ["颜色", false], ["页码", false]]; @observable sName: [string, boolean][] = [["左视图", false], ["概念", false]]; } diff --git a/src/Add-on/Viewport/OneKeyLayout.ts b/src/Add-on/Viewport/OneKeyLayout.ts index b48dab9c0..0fa662c7b 100644 --- a/src/Add-on/Viewport/OneKeyLayout.ts +++ b/src/Add-on/Viewport/OneKeyLayout.ts @@ -434,6 +434,8 @@ export class OneKeyLayout implements Command case "门": case "门板": return "door"; + case "标注": + return "dim"; } }; @@ -473,7 +475,7 @@ export class OneKeyLayout implements Command dir: new Vector3(), position: info.box.min.clone().sub(basePt), renderType: RenderType.Print, - isHideDoor: [], + hideEntitys: [], }; let box = info.box.clone(); @@ -507,10 +509,9 @@ export class OneKeyLayout implements Command let pos = text.Position.setZ(0); if (!useCache.has(text) && box.containsPoint(pos)) { - vpInfo.isHideDoor.push(GetHideBoard(text.TextString.slice(5))); + vpInfo.hideEntitys.push(GetHideBoard(text.TextString.slice(5))); useCache.add(text); this._cacheRect.add(text); - break; } } vpInfos.push(vpInfo);