From a41f66b140d3934c1278bb9c6078a5c4474ffd44 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9E=97=E4=B8=89?= <940119273@qq.com> Date: Thu, 7 Dec 2023 01:56:19 +0000 Subject: [PATCH] =?UTF-8?q?!2282=20=E5=BC=80=E5=8F=91:=E9=93=B0=E9=93=BE?= =?UTF-8?q?=E6=9B=BF=E6=8D=A2,=E7=BB=A7=E6=89=BF=E6=97=A7=E9=93=B0?= =?UTF-8?q?=E9=93=BEMOVE=E5=8F=82=E6=95=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/DatabaseServices/Template/TempateUtils.ts | 9 +++++++-- src/UI/Components/Template/TemplateComponent.tsx | 13 +++++++++---- .../Store/OptionInterface/TemplateManageOption.ts | 7 ++++++- 3 files changed, 22 insertions(+), 7 deletions(-) diff --git a/src/DatabaseServices/Template/TempateUtils.ts b/src/DatabaseServices/Template/TempateUtils.ts index 384754f76..e6858058e 100644 --- a/src/DatabaseServices/Template/TempateUtils.ts +++ b/src/DatabaseServices/Template/TempateUtils.ts @@ -26,7 +26,7 @@ import { AsVector3, ZAxis, ZeroVec, equaln, isParallelTo, isPerpendicularityTo } import { ClampSpaceParse } from "../../Geometry/SpaceParse/ClampSpaceParse"; import { ISpaceParse } from "../../Geometry/SpaceParse/ISpaceParse"; import { IGetRoomInfo } from "../../UI/Components/Template/GetRoomCabName"; -import { followAttribute } from "../../UI/Components/Template/TemplateComponent"; +import { TemplateOptionInfo, followAttribute } from "../../UI/Components/Template/TemplateComponent"; import { TemplateEditor } from "../../UI/Components/Template/TemplateEditor"; import { AppToaster } from "../../UI/Components/Toaster"; import { ITemplateParam } from "../../UI/Store/RightPanelStore/ITemplateParam"; @@ -1270,7 +1270,7 @@ export async function ReplaceTemplate(oldTemp: TemplateRecord, newTemp: Template } } -function GetEntityInfo(en: Entity, entTemp: TemplateRecord, option: IGetRoomInfo) +function GetEntityInfo(en: Entity, entTemp: TemplateRecord, option: TemplateOptionInfo) { if (en instanceof Board) { @@ -1301,6 +1301,11 @@ function GetEntityInfo(en: Entity, entTemp: TemplateRecord, option: IGetRoomInfo }); } option.hingeName = hwd.HardwareOption.name; + + //获取铰链的MOVE参数 + let moveParam = entTemp.GetParam("MOVE"); + if (moveParam) + option.hingeMoveParam = moveParam.expr ?? moveParam.value; } option.material = hwd.HardwareOption.material; diff --git a/src/UI/Components/Template/TemplateComponent.tsx b/src/UI/Components/Template/TemplateComponent.tsx index dc730ee53..ba75e7120 100644 --- a/src/UI/Components/Template/TemplateComponent.tsx +++ b/src/UI/Components/Template/TemplateComponent.tsx @@ -39,7 +39,7 @@ import { arrayRemoveOnce } from '../../../Nest/Common/ArrayExt'; import { IDrawerDoorTempInfo } from '../../Store/DoorInterface'; import { kuGanStore } from '../../Store/KuGanStore'; import { IDrawBoardAutoCutOption } from "../../Store/OptionInterface/IOptionInterface"; -import { IDir, IHasAutoCutOption, ITemplateManage, ITemplateManageOption, TemplateManageOption } from '../../Store/OptionInterface/TemplateManageOption'; +import { IDir, IHasAutoCutOption, ITemplateManage, ITemplateManageOption, TemplateManageOption, TemplateOptionInfo } from '../../Store/OptionInterface/TemplateManageOption'; import { ITemplateParam } from "../../Store/RightPanelStore/ITemplateParam"; import { tempalteManageStore } from '../../Store/TemplateManageStore'; import { AutoCutCheckbox } from '../Board/BoardCommon'; @@ -61,7 +61,7 @@ import { TemplateList } from './TemplateList'; @observer export class TemplateManage extends React.Component { - private option: IGetRoomInfo = { + private option: TemplateOptionInfo = { roomName: "", cabName: "", originCabName: "", @@ -75,7 +75,8 @@ export class TemplateManage extends React.Component { useMaterial: false, openDir: BoardOpenDir.None, followAttribute: true, - hingeName: "" + hingeName: "", + hingeMoveParam: "", }; @observable autoCutOption: IDrawBoardAutoCutOption = { isAutoCut: false, isRelevance: false }; private uiOption = { navigationWidth: "25%", showTag: true }; @@ -604,7 +605,11 @@ export class TemplateManage extends React.Component { if (index < 9) continue; let par = this.currentProps[index]; if (!par.expr) continue; - template.SetParamExpr(par.name, par.expr); + //继承旧铰链的move参数 + if (par.name === "MOVE" && this.templateManageOption.option.hingeMoveParam) + template.SetParamExpr(par.name, this.templateManageOption.option.hingeMoveParam); + else + template.SetParamExpr(par.name, par.expr); } if (isKeepChildren) diff --git a/src/UI/Store/OptionInterface/TemplateManageOption.ts b/src/UI/Store/OptionInterface/TemplateManageOption.ts index 5cf013ac7..d20380186 100644 --- a/src/UI/Store/OptionInterface/TemplateManageOption.ts +++ b/src/UI/Store/OptionInterface/TemplateManageOption.ts @@ -33,7 +33,7 @@ export interface TemplateManageUiOption export interface ITemplateManageOption extends IBaseOption { - option: IGetRoomInfo; + option: TemplateOptionInfo; autoCutOption: IDrawBoardAutoCutOption; uiOption: TemplateManageUiOption; perPageCount: number; @@ -41,6 +41,11 @@ export interface ITemplateManageOption extends IBaseOption dirData?: IHasAutoCutOption[]; } +export interface TemplateOptionInfo extends IGetRoomInfo +{ + hingeMoveParam?: string | number;//旧铰链的move参数 +} + export interface TemplateManageOption extends IBaseOption { isAutoCut: boolean;