diff --git a/src/Editor/GetDistanceServices.ts b/src/Editor/GetDistanceServices.ts index bf49ab04f..ed7ce9b5c 100644 --- a/src/Editor/GetDistanceServices.ts +++ b/src/Editor/GetDistanceServices.ts @@ -97,6 +97,9 @@ export class GetDistanceServices let dynInput = new GetDistancePromptBlock(dynManage); dynInput.Value = prompt.Default; + if (!prompt.Msg) + prompt.Msg = "请输入距离或者点取距离:"; + if (prompt.Default !== undefined) prompt.Msg += `<${prompt.Default}>`; dynInput.UpdatePrompt(prompt.Msg); diff --git a/src/Geometry/SpaceParse/ClampSpaceParse.ts b/src/Geometry/SpaceParse/ClampSpaceParse.ts index bd28e1cd6..ceab4df5a 100644 --- a/src/Geometry/SpaceParse/ClampSpaceParse.ts +++ b/src/Geometry/SpaceParse/ClampSpaceParse.ts @@ -87,18 +87,18 @@ export class ClampSpaceParse extends ISpaceParse async ParseSignalBoard() { let res = await this.GetSignalDist(); - if (res.Status === PromptStatus.OK) + if (res.Status === PromptStatus.OK && res.Distance > 0) { let dist = res.Distance; this._signalDist = dist; let br = this.m_Boards[0]; - let mat = br.RotateMat; - let p1 = new Vector3(0, 0, 0).applyMatrix4(mat); - let p2 = new Vector3(br.Width, br.Height, -dist).applyMatrix4(mat); - let p3 = new Vector3(0, 0, br.Thickness).applyMatrix4(mat); - let p4 = new Vector3(br.Width, br.Height, br.Thickness + dist).applyMatrix4(mat); + let mtx = this.m_SpaceOCSInv.clone().multiply(br.OCS); + let p1 = new Vector3(0, 0, 0).applyMatrix4(mtx); + let p2 = new Vector3(br.Width, br.Height, -dist).applyMatrix4(mtx); + let p3 = new Vector3(0, 0, br.Thickness).applyMatrix4(mtx); + let p4 = new Vector3(br.Width, br.Height, br.Thickness + dist).applyMatrix4(mtx); let boxs = [new Box3Ext().setFromPoints([p1, p2]), new Box3Ext().setFromPoints([p3, p4])]; diff --git a/src/Geometry/SpaceParse/ClampSpaceParseDist.ts b/src/Geometry/SpaceParse/ClampSpaceParseDist.ts index 0f7e505da..82a1d7392 100644 --- a/src/Geometry/SpaceParse/ClampSpaceParseDist.ts +++ b/src/Geometry/SpaceParse/ClampSpaceParseDist.ts @@ -1,12 +1,16 @@ import { ClampSpaceParse } from "./ClampSpaceParse"; import { app } from "../../ApplicationServices/Application"; -import { PromptDistendResult } from "../../Editor/PromptResult"; +import { PromptDistendResult, PromptStatus } from "../../Editor/PromptResult"; +let Default = 100; export class ClampSpaceParseDist extends ClampSpaceParse { //virtual (请重载) 指定用户选择单块板的延伸空间 async GetSignalDist(): Promise { - return app.Editor.GetDistance({}); + let res = await app.Editor.GetDistance({ Default }); + if (res.Status === PromptStatus.OK) + Default = res.Distance; + return res; } }