!2771 功能:模板半径动作添加可选模式选项(圆弧,凸度,高度)

pull/2766/MERGE
黄诗津 4 months ago committed by ChenX
parent a922b26839
commit 50c9038c94

@ -37,6 +37,12 @@ export class TemplateaRadiusAction extends TemplateFilletAction
@AutoRecord IsBigArc = false;//是大圆弧(仅在半径模式下生效)
@AutoRecord RadiusType = TempalteActionRadiusType.Radius;//半径类型
constructor(radiusType: TempalteActionRadiusType)
{
super();
this.RadiusType = radiusType;
}
//修改半径(这里不是倒角了)
protected override Fillet(br: ExtrudeSolid | I2DModeling, newValue: number, d: { ArcParams: number[]; })
{

@ -48,7 +48,7 @@ import { IGrooveFillet, TemplateFilletAction } from "./Action/TemplateFilletActi
import { TemplateMoveAction } from "./Action/TemplateMoveAction";
import { TemplateStretchGripAction } from "./Action/TemplateStretchGripAction";
import { TemplateStretchScaleBoxAction } from "./Action/TemplateStretchScaleBoxAction";
import { TemplateaRadiusAction } from "./Action/TemplateaRadiusAction";
import { TempalteActionRadiusType, TemplateaRadiusAction } from "./Action/TemplateaRadiusAction";
import { PositioningClampSpace } from './Positioning/PositioningClampSpace';
import { PositioningTemporary } from "./Positioning/PositioningTemporary";
import { TemplateVisualSpace } from "./ProgramTempate/TemplateVisualSpace";
@ -811,7 +811,7 @@ export enum ArcActionType
* @param template
* @returns
*/
export async function AddFilletAction(template: TemplateRecord, actionType = ArcActionType.Fillet): Promise<TemplateFilletAction | undefined>
export async function AddFilletAction(template: TemplateRecord, actionType = ArcActionType.Fillet, radiusType = TempalteActionRadiusType.Radius): Promise<TemplateFilletAction | undefined>
{
//模块信息
let brs = GetTempateBoards(template);
@ -882,7 +882,7 @@ export async function AddFilletAction(template: TemplateRecord, actionType = Arc
if (brParamMap.size === 0)
return;
let action = actionType === ArcActionType.Fillet ? new TemplateFilletAction() : new TemplateaRadiusAction;
let action = actionType === ArcActionType.Fillet ? new TemplateFilletAction() : new TemplateaRadiusAction(radiusType);
for (let [br, { parames, grooves, path2D, subGrooves, arcSweepParams }] of brParamMap)
{
const gs: IGrooveFillet[] = [];

@ -14,6 +14,7 @@ import { ObjectId } from '../../../DatabaseServices/ObjectId';
import { TemplateAction } from '../../../DatabaseServices/Template/Action/TemplateAction';
import { TemplateMaterialAction } from '../../../DatabaseServices/Template/Action/TemplateMaterialAction';
import { TemplateSetSealAction } from '../../../DatabaseServices/Template/Action/TemplateSetSealAction';
import { TempalteActionRadiusType } from '../../../DatabaseServices/Template/Action/TemplateaRadiusAction';
import { TemplateParam } from '../../../DatabaseServices/Template/Param/TemplateParam';
import { TemplateParamType } from '../../../DatabaseServices/Template/Param/TemplateParamType';
import { AddFilletAction, AddStretchAction, ArcActionType, CheckTempalteParamName } from '../../../DatabaseServices/Template/TempateUtils';
@ -64,12 +65,19 @@ const MaterialActionOptions = [
{ label: "设置材质", value: EEditorActionType.SetMaterial }
];
const ActionModeOptions = [
{ label: "圆弧模式", value: TempalteActionRadiusType.Radius },
{ label: "凸度模式", value: TempalteActionRadiusType.Bulge },
{ label: "高度模式", value: TempalteActionRadiusType.Height },
];
/**
*
*
*/
@observer
export class TempalteActionDialog extends React.Component<ITempalteActionDialogProps> {
export class TempalteActionDialog extends React.Component<ITempalteActionDialogProps>
{
@observable pararmConfig: ITemplateParam = {
name: "",
value: "0",
@ -82,6 +90,7 @@ export class TempalteActionDialog extends React.Component<ITempalteActionDialogP
@observable actionRadioSelect: ActionStretchType = ActionStretchType.Grips;
@observable actionUseMaterialInfo: boolean = true;
@observable actionSetComEntsMaterial: boolean = false;
@observable actionModeType: TempalteActionRadiusType = TempalteActionRadiusType.Radius;
private renderDialogBody = () =>
{
@ -102,7 +111,6 @@ export class TempalteActionDialog extends React.Component<ITempalteActionDialogP
value: par.name
};
});
const isEditor = this.props.type === EEditorActionType.Editor;
return (
<>
@ -139,6 +147,21 @@ export class TempalteActionDialog extends React.Component<ITempalteActionDialogP
/>
</Label>
}
{
this.actionType === EEditorActionType.AddRadius &&
<Label className={Classes.INLINE}>
<div className='spanText'><span> :</span></div>
<HTMLSelect
large={true}
options={ActionModeOptions}
value={this.actionModeType}
onChange={(e) =>
{
this.actionModeType = parseInt(e.currentTarget.options[e.target.selectedIndex].value);
}}
/>
</Label>
}
<Label className={Classes.INLINE}>
<div className='spanText'><span> :</span></div>
<input
@ -448,7 +471,7 @@ export class TempalteActionDialog extends React.Component<ITempalteActionDialogP
else if (this.actionType === EEditorActionType.AddFillet)
action = await AddFilletAction(this.props.store.Template);
else if (this.actionType === EEditorActionType.AddRadius)
action = await AddFilletAction(this.props.store.Template, ArcActionType.Radius);
action = await AddFilletAction(this.props.store.Template, ArcActionType.Radius, this.actionModeType);
else if (this.actionType === EEditorActionType.SetEdge)//TODO:增加封边类型
{
let template = this.props.store.Template;

Loading…
Cancel
Save