diff --git a/src/Add-on/DrawDim/AutoDimBrs.ts b/src/Add-on/DrawDim/AutoDimBrs.ts index ca28e1af7..be1e8ada0 100644 --- a/src/Add-on/DrawDim/AutoDimBrs.ts +++ b/src/Add-on/DrawDim/AutoDimBrs.ts @@ -68,6 +68,9 @@ export class Command_AutoDimBrs implements Command tool.FiltereCabinetInsideSmallDim = store.m_Option.noInSize; tool.EanbleCabinetInsideSmallDimSize = store.m_Option.noShowMinInSize; + tool.InsideOffset = store.m_Option.insideOffset; + tool.InsideOffsetDist = store.m_Option.insideOffsetDist; + if (tool.EnableFilterAppointDimSize && store.m_Option.noShowAppointSizes) for (let str of store.m_Option.noShowAppointSizes.split(/[' ','\,','\|']/)) tool.FilterDimSizeSet.add(str); diff --git a/src/Add-on/DrawDim/AutoDimBrsStore.ts b/src/Add-on/DrawDim/AutoDimBrsStore.ts index c388f8e05..cab9e22b2 100644 --- a/src/Add-on/DrawDim/AutoDimBrsStore.ts +++ b/src/Add-on/DrawDim/AutoDimBrsStore.ts @@ -53,6 +53,13 @@ export class AutoDimBrsStore implements IConfigStore conf.option.forBoardNameType = DefaultAutoDimBrsOption.forBoardNameType; } + if (conf.option.version < 2) + { + conf.option.version = 2; + conf.option.insideOffset = false; + conf.option.insideOffsetDist = 0; + } + Object.assign(this.m_Option, conf.option); } diff --git a/src/Add-on/DrawDim/AutoDimBrsTool.ts b/src/Add-on/DrawDim/AutoDimBrsTool.ts index af5e75968..5b2b45a73 100644 --- a/src/Add-on/DrawDim/AutoDimBrsTool.ts +++ b/src/Add-on/DrawDim/AutoDimBrsTool.ts @@ -9,4 +9,5 @@ export enum EDimType NoAppointSize = "noAppointSize",//过滤指定尺寸 NoInSize = "noInSize",//空间小于该数值时 不标注内空 ForBoardName = "forBoardName",//根据板名条件过滤 + InsideOffset = "insideOffset",//柜内标注内偏 } diff --git a/src/Add-on/DrawDim/DimBoards.ts b/src/Add-on/DrawDim/DimBoards.ts index 9c02bae37..5d5cdb7d7 100644 --- a/src/Add-on/DrawDim/DimBoards.ts +++ b/src/Add-on/DrawDim/DimBoards.ts @@ -49,6 +49,9 @@ export class DimBoards FiltereCabinetInsideSmallDim = true;//柜内空间小于(150)时不标注 EanbleCabinetInsideSmallDimSize = 300; + InsideOffset = false; //柜内标注内偏 + InsideOffsetDist = 0;//柜内标注内偏距离 + //#endregion private groups: (Board[])[] = []; @@ -366,7 +369,8 @@ export class DimBoards // let size = opls[0].BoundingBoxInOCS.getSize(new Vector3); //因为门板的原因 和门板重叠后就看不清楚了 所以把他往柜体内部移动30 避免和门冲突 - const InternalDeviationMtl = spaceFrontCS.clone().multiply(new Matrix4().makeTranslation(0, 0, -30)); + let scale = this.InsideOffset ? -this.InsideOffsetDist : 0; + const InternalDeviationMtl = spaceFrontCS.clone().multiply(new Matrix4().makeTranslation(0, 0, scale)); for (let cu of pl.Explode()) { diff --git a/src/Editor/DefaultConfig.ts b/src/Editor/DefaultConfig.ts index f460a6374..2094b3d4d 100644 --- a/src/Editor/DefaultConfig.ts +++ b/src/Editor/DefaultConfig.ts @@ -1046,7 +1046,7 @@ export const DefaultDatalistOption: DatalistConfigOption = { Object.freeze(DefaultDatalistOption); export const DefaultAutoDimBrsOption: IAutoDimBrsOption = { - version: 1, + version: 2, total: true, out: true, inW: false, @@ -1062,6 +1062,8 @@ export const DefaultAutoDimBrsOption: IAutoDimBrsOption = { forBoardName: false, forBoardNameStr: "", forBoardNameType: ForBoardNameType.Same, + insideOffset: false, + insideOffsetDist: 0 }; Object.freeze(DefaultAutoDimBrsOption); diff --git a/src/UI/Components/AutoDimBoard.tsx b/src/UI/Components/AutoDimBoard.tsx index 5d77cb3d5..b1bf7fab5 100644 --- a/src/UI/Components/AutoDimBoard.tsx +++ b/src/UI/Components/AutoDimBoard.tsx @@ -23,6 +23,7 @@ export class AutoDimBoardPanel extends React.Component<{ store: AutoDimBrsStore; _NoShowMinInSizeInput: React.RefObject = React.createRef(); _NoShowAppointDimSizeInput: React.RefObject = React.createRef(); _ForBoardNameInput: React.RefObject = React.createRef(); + _InsideOffsetDistInput: React.RefObject = React.createRef(); componentDidMount() { @@ -50,6 +51,8 @@ export class AutoDimBoardPanel extends React.Component<{ store: AutoDimBrsStore; this._NoShowMinSizeInput.current.value = this.props.store.m_Option.noShowMinSize.toFixed(); if (this._ForBoardNameInput) this._ForBoardNameInput.current.value = this.props.store.m_Option.forBoardNameStr; + if (this._InsideOffsetDistInput) + this._InsideOffsetDistInput.current.value = this.props.store.m_Option.insideOffsetDist.toFixed(); }) ); } @@ -94,6 +97,39 @@ export class AutoDimBoardPanel extends React.Component<{ store: AutoDimBrsStore; this._OnChange(EDimType.InH)} /> {/* */} +
+ this._OnChange(EDimType.InsideOffset)} /> + + { + switch (e.keyCode) + { + case KeyBoard.Escape: + case KeyBoard.Space: + case KeyBoard.Enter: + e.currentTarget.blur(); + e.stopPropagation(); + break; + default: + break; + } + }} + onBlur={(e) => + { + let val = safeEval(e.target.value); + if (!isNaN(val)) + option.insideOffsetDist = parseFloat(e.currentTarget.value); + else + e.target.value = option.insideOffsetDist.toFixed(); + }} + /> +
this._OnChange(EDimType.NoSmSize)} />