From c7350a1c0919103970fa7bdfc1ec16fcad42cf21 Mon Sep 17 00:00:00 2001 From: ZoeLeeFZ Date: Thu, 11 Mar 2021 15:32:21 +0800 Subject: [PATCH] =?UTF-8?q?!1403=20=E4=BF=AE=E5=A4=8D:=20=E5=BA=94?= =?UTF-8?q?=E7=94=A8=E6=8B=89=E6=89=8B=E5=8F=82=E6=95=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/Add-on/DrawBoard/DrawDoor.ts | 13 ++------- .../DrawDoorDrawer/DrawDoorDrawerTool.ts | 27 ++++++++++++++++--- src/Add-on/DrawBoard/DrawDrawer.ts | 18 +++++++++++++ src/UI/Store/DoorInterface.ts | 2 +- 4 files changed, 45 insertions(+), 15 deletions(-) diff --git a/src/Add-on/DrawBoard/DrawDoor.ts b/src/Add-on/DrawBoard/DrawDoor.ts index 44937cb25..e01e2957c 100644 --- a/src/Add-on/DrawBoard/DrawDoor.ts +++ b/src/Add-on/DrawBoard/DrawDoor.ts @@ -12,7 +12,6 @@ import { DoorOpenDir } from "../../UI/Store/DoorInterface"; import { DrawDoorTool } from "./DrawDoorDrawer/DrawDoorDrawerTool"; import { DrawLeftRightOpenDoor } from "./DrawDoorDrawer/DrawLeftRightOpenDoor"; import { DrawUpDownOpenDoor } from "./DrawDoorDrawer/DrawUpDownOpenDoor"; -import { AutoCutting } from "../BoardCutting/AutoCuttingReactor"; export class DrawDoor implements Command { @@ -52,18 +51,10 @@ export class DrawDoor implements Command let tool: DrawDoorTool; if (isUpDownOpenDir) - tool = new DrawUpDownOpenDoor( - store.m_Option, spaceParse, toJS(store.doorDrawersInfo) - ); + tool = new DrawUpDownOpenDoor(store, spaceParse); else - tool = new DrawLeftRightOpenDoor( - store.m_Option, spaceParse, toJS(store.doorDrawersInfo) - ); + tool = new DrawLeftRightOpenDoor(store, spaceParse); await tool.Draw(); - - //我们在界面已经移除了它,所以我们也移除这个切割 - // if (store.autoCutOption.isAutoCut) - // await AutoCutting(store.autoCutOption.isRelevance); } } } diff --git a/src/Add-on/DrawBoard/DrawDoorDrawer/DrawDoorDrawerTool.ts b/src/Add-on/DrawBoard/DrawDoorDrawer/DrawDoorDrawerTool.ts index 3d11d2980..9587dd2c8 100644 --- a/src/Add-on/DrawBoard/DrawDoorDrawer/DrawDoorDrawerTool.ts +++ b/src/Add-on/DrawBoard/DrawDoorDrawer/DrawDoorDrawerTool.ts @@ -16,8 +16,10 @@ import { TemplateVisualSpace } from "../../../DatabaseServices/Template/ProgramT import { Vector3 } from "three"; import { equaln, isParallelTo } from "../../../Geometry/GeUtils"; import { TemplateSizeBoard } from "../../../DatabaseServices/Template/ProgramTempate/TemplateSizeBoard"; -import { openDirTitle } from "../../../UI/Store/DoorDrawerStore/DoorStore"; import { ExtureContourCurve } from "../../../DatabaseServices/Entity/Extrude"; +import { DoorStore, openDirTitle } from "../../../UI/Store/DoorDrawerStore/DoorStore"; +import { toJS } from "mobx"; +import { INeedUpdateParams } from "../../../UI/Components/Template/TemplateComponent"; export class DrawDoorTool { @@ -32,12 +34,17 @@ export class DrawDoorTool /** 每个格子的信息Map*/ protected rowColIdMap: Map = new Map(); private hingeSet: Set = new Set(); + protected option: IDoorConfigOption; + protected doorInfos: IDoorInfo[]; + private currentHandleProps: INeedUpdateParams[]; constructor( - protected option: IDoorConfigOption, + store: DoorStore, protected spaceParse: ISpaceParse, - protected doorInfos: IDoorInfo[], ) { + this.option = store.m_Option; + this.doorInfos = toJS(store.doorDrawersInfo); + this.currentHandleProps = store.currentHandleProp; } private GetHeightExpr(expr: string) { @@ -255,6 +262,20 @@ export class DrawDoorTool handleSpace.PZParam.expr = zExpr; let handleTemp = this._idTempMap.get(info.tempInfo.handleTemp.id); + + //应用一次用户输入的拉手参数 + if (this.currentHandleProps) + { + for (let prop of this.currentHandleProps) + { + if (DisableChangeParName.includes(prop.name)) continue; + let par = handleTemp.GetParam(prop.name); + if (par) + par.expr = prop.expr; + } + this.currentHandleProps = null; + } + handleTemp = app.Database.WblockCloneObejcts([handleTemp], app.Database.TemplateTable, new Map(), DuplicateRecordCloning.Ignore)[0] as TemplateRecord; handleSpace.Children.push(handleTemp.Id); handleTemp.HParam.expr = "0"; diff --git a/src/Add-on/DrawBoard/DrawDrawer.ts b/src/Add-on/DrawBoard/DrawDrawer.ts index e6be37ce0..64898acfb 100644 --- a/src/Add-on/DrawBoard/DrawDrawer.ts +++ b/src/Add-on/DrawBoard/DrawDrawer.ts @@ -25,9 +25,11 @@ import { ModalState } from "../../UI/Components/Modal/ModalInterface"; import { DrawerStore } from "../../UI/Store/DoorDrawerStore/DrawerStore"; import { DisableChangeParName, HandleHorPos, HandleVePos, IDrawerConfigOption, IDrawerInfo } from "../../UI/Store/DoorInterface"; import { BoardType } from "../../UI/Store/BoardInterface"; +import { INeedUpdateParams } from "../../UI/Components/Template/TemplateComponent"; export class DrawDrawrer implements Command { + private currentHandleProp: INeedUpdateParams[]; async exec() { let selectSpace = new PointSelectSpaceClamp(); @@ -124,6 +126,8 @@ export class DrawDrawrer implements Command return; } + this.currentHandleProp = store.currentHandleProp; + //每行每列的宽高 let colWidths: (number | string)[] = []; let rowHeighs: (number | string)[] = []; @@ -556,6 +560,20 @@ export class DrawDrawrer implements Command rowTemplate.Children.push(handleSpace.Id); let handleTemp = idTempMap.get(info.tempInfo.handleTemp.id); + + //应用一次用户输入的拉手参数 + if (this.currentHandleProp) + { + for (let prop of this.currentHandleProp) + { + if (DisableChangeParName.includes(prop.name)) continue; + let par = handleTemp.GetParam(prop.name); + if (par) + par.expr = prop.expr; + } + this.currentHandleProp = null; + } + handleTemp = app.Database.WblockCloneObejcts([handleTemp], app.Database.TemplateTable, new Map(), DuplicateRecordCloning.Ignore)[0] as TemplateRecord; handleSpace.Children.push(handleTemp.Id); handleTemp.HParam.expr = "0"; diff --git a/src/UI/Store/DoorInterface.ts b/src/UI/Store/DoorInterface.ts index 52bdadfa4..1748a5ac1 100644 --- a/src/UI/Store/DoorInterface.ts +++ b/src/UI/Store/DoorInterface.ts @@ -142,7 +142,7 @@ export interface ISelectTempInfo /**抽屉一定要有的参数 */ export const DrawerTempParName = ["ZYS", "YYS", "SYS", "XYS"]; /**禁止改的属性 */ -export const DisableChangeParName = ["L", "W", "H", "ZYS", "YYS", "SYS", "XYS", "ZG", "YG", "SG", "XG"]; +export const DisableChangeParName = ["L", "W", "H", "ZYS", "YYS", "SYS", "XYS", "ZG", "YG", "SG", "XG", "BH"]; /**门板需要的参数 */ export const DoorNeedParamNames = ["L", "W", "H", "PX", "PY", "PZ", "RX", "RY", "RZ", "SG", "XG", "ZG", "YG", "XBH", "BH"];