!3046 优化:柜体标注的柜内标注内偏增加到配置

pull/3050/MERGE
林三 1 month ago committed by ChenX
parent 9197ea2676
commit 134a1748b7

@ -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);

@ -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);
}

@ -9,4 +9,5 @@ export enum EDimType
NoAppointSize = "noAppointSize",//过滤指定尺寸
NoInSize = "noInSize",//空间小于该数值时 不标注内空
ForBoardName = "forBoardName",//根据板名条件过滤
InsideOffset = "insideOffset",//柜内标注内偏
}

@ -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())
{

@ -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);

@ -23,6 +23,7 @@ export class AutoDimBoardPanel extends React.Component<{ store: AutoDimBrsStore;
_NoShowMinInSizeInput: React.RefObject<HTMLInputElement> = React.createRef();
_NoShowAppointDimSizeInput: React.RefObject<HTMLInputElement> = React.createRef();
_ForBoardNameInput: React.RefObject<HTMLInputElement> = React.createRef();
_InsideOffsetDistInput: React.RefObject<HTMLInputElement> = 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;
<Checkbox label="柜内高标注" checked={option.inH} onChange={() => this._OnChange(EDimType.InH)} />
</div>
{/* <Checkbox label="过滤重复标注" data-type={EDimType.NoRepeat} defaultChecked={!!(this.dimType & EDimType.NoRepeat)} onChange={this.onChange} /> */}
<div className='dimInputGroup'>
<Checkbox label="柜内标注内偏" checked={option.insideOffset} onChange={() => this._OnChange(EDimType.InsideOffset)} />
<input
className="bp3-input br-process-input"
tabIndex={1}
ref={this._InsideOffsetDistInput}
defaultValue={option.insideOffsetDist}
min={1}
style={{ width: 50, height: 28 }}
onKeyDown={(e) =>
{
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();
}}
/>
</div>
<div className='dimInputGroup'>
<Checkbox label="过滤小尺寸标注" checked={option.noSmSize} onChange={() => this._OnChange(EDimType.NoSmSize)} />
<input

@ -25,6 +25,8 @@ export interface IAutoDimBrsOption extends IBaseOption
forBoardName: boolean;
forBoardNameStr: string;
forBoardNameType: ForBoardNameType;
insideOffset: boolean; //柜内标注内偏
insideOffsetDist: number;//柜内标注内偏距离
}
export interface IFastDimOption extends IBaseOption

Loading…
Cancel
Save