From b57047fbff15bbbf6b33d87fbce152b74507de84 Mon Sep 17 00:00:00 2001 From: ChenX Date: Wed, 14 Aug 2019 16:35:47 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E6=A8=A1=E5=9D=97=E4=B8=B4?= =?UTF-8?q?=E6=97=B6=E5=AE=9A=E4=BD=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/Add-on/DrawBoard/DrawLeftRightBoard.ts | 2 -- .../Template/Positioning/Positioning.ts | 8 ++--- .../Positioning/PositioningTemporary.ts | 12 +++++++ .../Template/TemplateRecord.ts | 34 +++++++++++-------- 4 files changed, 35 insertions(+), 21 deletions(-) create mode 100644 src/DatabaseServices/Template/Positioning/PositioningTemporary.ts diff --git a/src/Add-on/DrawBoard/DrawLeftRightBoard.ts b/src/Add-on/DrawBoard/DrawLeftRightBoard.ts index 47a6d945a..aacbe0640 100644 --- a/src/Add-on/DrawBoard/DrawLeftRightBoard.ts +++ b/src/Add-on/DrawBoard/DrawLeftRightBoard.ts @@ -54,8 +54,6 @@ export class DrawLeftRight implements Command app.Database.ModelSpace.Append(leftBoard); app.Database.ModelSpace.Append(rightBoard); } - - JigUtils.End(); } } } diff --git a/src/DatabaseServices/Template/Positioning/Positioning.ts b/src/DatabaseServices/Template/Positioning/Positioning.ts index 60dba2d8e..f1137d061 100644 --- a/src/DatabaseServices/Template/Positioning/Positioning.ts +++ b/src/DatabaseServices/Template/Positioning/Positioning.ts @@ -1,9 +1,9 @@ +import { Matrix4, Vector3 } from "three"; import { Factory } from "../../CADFactory"; -import { ISerialize } from "../../ISerialize"; import { CADFiler } from "../../CADFiler"; -import { TemplateRecord } from "../TemplateRecord"; -import { Matrix4, Box3, Vector3 } from "three"; +import { ISerialize } from "../../ISerialize"; import { ObjectId } from "../../ObjectId"; +import { TemplateRecord } from "../TemplateRecord"; export interface PositioningParam { @@ -17,7 +17,7 @@ export interface PositioningParam * 模版定位信息(基类) */ @Factory -export class Positioning implements ISerialize +export abstract class Positioning implements ISerialize { SpaceCS: Matrix4;//空间坐标系 SpaceSize: Vector3;//有可能不存在 diff --git a/src/DatabaseServices/Template/Positioning/PositioningTemporary.ts b/src/DatabaseServices/Template/Positioning/PositioningTemporary.ts new file mode 100644 index 000000000..1b0d9a725 --- /dev/null +++ b/src/DatabaseServices/Template/Positioning/PositioningTemporary.ts @@ -0,0 +1,12 @@ +import { Positioning } from "./Positioning"; +import { Factory } from "../../CADFactory"; + +/** + * 临时定位 + * 在首次绘制时使用2点3点空间时通常不能使用定位,使用临时定位设置给模块后,模块在第一次使用后清空定位. + */ +@Factory +export class PositioningTemporary extends Positioning +{ + +} diff --git a/src/DatabaseServices/Template/TemplateRecord.ts b/src/DatabaseServices/Template/TemplateRecord.ts index 48b5e453f..96eb0acff 100644 --- a/src/DatabaseServices/Template/TemplateRecord.ts +++ b/src/DatabaseServices/Template/TemplateRecord.ts @@ -1,4 +1,4 @@ -import { Matrix4, Vector3, Math, Box3 } from "three"; +import { Box3, Math, Matrix4, Vector3 } from "three"; import { AutoRecord, ISPROXYKEY } from "../AutoRecord"; import { Factory } from "../CADFactory"; import { CADFiler } from "../CADFiler"; @@ -9,6 +9,7 @@ import { SymbolTableRecord } from "../SymbolTableRecord"; import { TemplateParam } from "./Param/TemplateParam"; import { TemplateParamType } from "./Param/TemplateParamType"; import { Positioning } from "./Positioning/Positioning"; +import { PositioningTemporary } from "./Positioning/PositioningTemporary"; import { TemplateSplitType, TemplateType } from "./TemplateType"; /** @@ -227,7 +228,7 @@ export class TemplateRecord extends SymbolTableRecord */ protected async Update() { - let vardefines = this.GetParameterDefinition(false); + let varDefines = this.GetParameterDefinition(false); let brs = this.Objects.filter(id => !id.IsErase).map(id => id.Object as Board); let evaled = new Set(); @@ -251,7 +252,7 @@ export class TemplateRecord extends SymbolTableRecord spaceCS = this.positioning.SpaceCS; spaceSize = this.positioning.SpaceSize; - spaceCS = this.RotateSpaceCS(vardefines, paramMap, evaled, spaceCS, spaceSize); + spaceCS = this.RotateSpaceCS(varDefines, paramMap, evaled, spaceCS, spaceSize); //更新LWH(通过定位空间) this.LParam.UpdateParam(spaceSize.x); this.LParam.expr = ""; @@ -259,17 +260,20 @@ export class TemplateRecord extends SymbolTableRecord this.WParam.expr = ""; this.HParam.UpdateParam(spaceSize.z); this.HParam.expr = ""; + + if (this.positioning instanceof PositioningTemporary) + this.positioning = undefined; } else { - this.LParam.EvalUpdate(vardefines, paramMap, evaled); - this.WParam.EvalUpdate(vardefines, paramMap, evaled); - this.HParam.EvalUpdate(vardefines, paramMap, evaled); + this.LParam.EvalUpdate(varDefines, paramMap, evaled); + this.WParam.EvalUpdate(varDefines, paramMap, evaled); + this.HParam.EvalUpdate(varDefines, paramMap, evaled); - this.PXParam.EvalUpdate(vardefines, paramMap, evaled); - this.PYParam.EvalUpdate(vardefines, paramMap, evaled); - this.PZParam.EvalUpdate(vardefines, paramMap, evaled); + this.PXParam.EvalUpdate(varDefines, paramMap, evaled); + this.PYParam.EvalUpdate(varDefines, paramMap, evaled); + this.PZParam.EvalUpdate(varDefines, paramMap, evaled); let l = this.LParam.value as number; let w = this.WParam.value as number; @@ -280,7 +284,7 @@ export class TemplateRecord extends SymbolTableRecord let baseP = new Vector3(this.PXParam.value as number, this.PYParam.value as number, this.PZParam.value as number); baseP.applyMatrix4(spaceCS); spaceCS.setPosition(baseP); - spaceCS = this.RotateSpaceCS(vardefines, paramMap, evaled, spaceCS, spaceSize); + spaceCS = this.RotateSpaceCS(varDefines, paramMap, evaled, spaceCS, spaceSize); if (!this.Parent) { @@ -307,9 +311,9 @@ export class TemplateRecord extends SymbolTableRecord this.HParam.UpdateParam(spaceSize.z); } - vardefines["L"] = spaceSize.x; - vardefines["W"] = spaceSize.y; - vardefines["H"] = spaceSize.z; + varDefines["L"] = spaceSize.x; + varDefines["W"] = spaceSize.y; + varDefines["H"] = spaceSize.z; //#endregion @@ -325,7 +329,7 @@ export class TemplateRecord extends SymbolTableRecord //更新其他参数变量 Eval local params for (const param of this.Params) { - param.EvalUpdate(vardefines, paramMap, evaled); + param.EvalUpdate(varDefines, paramMap, evaled); } //保持SpaceCS @@ -335,7 +339,7 @@ export class TemplateRecord extends SymbolTableRecord } //Cache - this._CacheParamVars = vardefines; + this._CacheParamVars = varDefines; this._CacheSpaceCS = spaceCS; this._CacheSpaceSize = spaceSize; }