CAA创建基于草图拉伸(Pad)-的状态命令

上传人:壹****1 文档编号:511369071 上传时间:2022-07-25 格式:DOC 页数:11 大小:83.50KB
返回 下载 相关 举报
CAA创建基于草图拉伸(Pad)-的状态命令_第1页
第1页 / 共11页
CAA创建基于草图拉伸(Pad)-的状态命令_第2页
第2页 / 共11页
CAA创建基于草图拉伸(Pad)-的状态命令_第3页
第3页 / 共11页
CAA创建基于草图拉伸(Pad)-的状态命令_第4页
第4页 / 共11页
CAA创建基于草图拉伸(Pad)-的状态命令_第5页
第5页 / 共11页
点击查看更多>>
资源描述

《CAA创建基于草图拉伸(Pad)-的状态命令》由会员分享,可在线阅读,更多相关《CAA创建基于草图拉伸(Pad)-的状态命令(11页珍藏版)》请在金锄头文库上搜索。

1、该例子在工具条创建一个状态命令,用户激活该命令后,根据提示依次选择草图,输入拉伸长度,点击确定完成一个拉伸特征的创建。通过该例子,可以熟悉零件文档的基本结构、获取草图工厂的方法,你还可以掌握如何获得草图支持面的方向。1. 创建对话框在名为CAAPadCreateCmd的Module中创建一个名为PadParamInputDlg的对话框,安装如下方式布局并在对话框中添加对应的控件:布局完成后在对话框外的空白处点鼠标左键,然后按CTRL+S进行保存,向导会自动更新对应的资源文件和.h以及.cpp文件。最终该对话框对应的布局代码如下:12345678910111213141516void PadPa

2、ramInputDlg:Build()/ TODO: This call builds your dialog from the layout declaration file/ -/CAA2 WIZARD WIDGET CONSTRUCTION SECTION_Label001 = new CATDlgLabel(this, Label001);_Label001 - SetGridConstraints(0, 0, 1, 1, CATGRID_4SIDES);_EditorSketch = new CATDlgEditor(this, EditorSketch);_EditorSketch

3、 - SetGridConstraints(0, 1, 1, 1, CATGRID_4SIDES);_Label003 = new CATDlgLabel(this, Label003);_Label003 - SetGridConstraints(1, 0, 1, 1, CATGRID_4SIDES);_EditorOffset1 = new CATDlgEditor(this, EditorOffset1);_EditorOffset1 - SetGridConstraints(1, 1, 1, 1, CATGRID_4SIDES);_Label005 = new CATDlgLabel(

4、this, Label005);_Label005 - SetGridConstraints(2, 0, 1, 1, CATGRID_4SIDES);_EditorOffset2 = new CATDlgEditor(this, EditorOffset2);授课:XXX1718192021222324252627282930_EditorOffset2 - SetGridConstraints(2, 1, 1, 1, CATGRID_4SIDES);/END CAA2 WIZARD WIDGET CONSTRUCTION SECTION/CAA2 WIZARD CALLBACK DECLAR

5、ATION SECTION/END CAA2 WIZARD CALLBACK DECLARATION SECTION2. 添加获取编辑框控件的成员方法为了方便命令类获取对话框编辑框控件,以获取或设置编辑框的内容,给对话框类PadParamInputDlg添加成员函数GetEditorControl:123456789/获得对话框控件CATDlgEditor* PadParamInputDlg:GetEditorControl(int id)switch(id)case 1:return _EditorSketch;case 2:return _EditorOffset1;case 3:retu

6、rn _EditorOffset2;授课:XXX10111213default:return NULL;3. 在命令类PadStateCmd添加成员变量下面是命令类CAApadCreateStCmd的头文件:class CAAPadCreateStCmd: public CATStateCommand /省略其它向导生成代码 /结束当前命令 void ExitCommand(); /选择草图 CATBoolean SelectSketch(void* data); /创建拉伸体 CATBoolean CreatePad(void* data); /验证用户输入 CATBoolean Valid

7、ateInput();private: /参数输入对话框 PadParamInputDlg* _pDlgInput; /草图选择代理 CATPathElementAgent* _pSelSketchAgent; /输入对话框确定按钮代理 CATDialogAgent* _pDlgOKAgent; /保存草图对象 CATISpecObject_var _spSketchObj; /第一方向偏移长度 double _fOffset1; /第二方向偏移长度 double _fOffset2;在构造函数对相关成员进行初始化:CAAPadCreateStCmd:CAAPadCreateStCmd() :

8、CATStateCommand (CAAPadCreateStCmd, CATDlgEngOneShot, CATCommandModeExclusive)授课:XXX/ Valid states are CATDlgEngOneShot and CATDlgEngRepeat,_pDlgInput(NULL),_pSelSketchAgent(NULL),_pDlgOKAgent(NULL),_spSketchObj(NULL_var),_fOffset1(0.0),_fOffset2(0.0) /初始化对话框 _pDlgInput = new PadParamInputDlg(); _pD

9、lgInput-Build(); _pDlgInput-SetVisibility(CATDlgShow); /添加创建直线对话框的消息回调函数 AddAnalyseNotificationCB(_pDlgInput, _pDlgInput-GetWindCloseNotification(), (CATCommandMethod)&CAAPadCreateStCmd:ExitCommand, (void*)NULL); AddAnalyseNotificationCB(_pDlgInput, _pDlgInput-GetDiaCANCELNotification(), (CATCommand

10、Method)&CAAPadCreateStCmd:ExitCommand, (void*)NULL);在析构函数添加相应资源释放的代码:CAAPadCreateStCmd:CAAPadCreateStCmd() /析构对话框 if(NULL != _pDlgInput) _pDlgInput-RequestDelayedDestruction(); _pDlgInput = NULL; /析构草图选择代理 if(NULL != _pSelSketchAgent) _pSelSketchAgent-RequestDelayedDestruction(); _pSelSketchAgent =

11、NULL; /析构对话框确定按钮代理授课:XXX if(NULL != _pDlgOKAgent) _pDlgOKAgent-RequestDelayedDestruction(); _pDlgOKAgent = NULL; 4. 实现状态转换函数BuildGraph状态转换函数BuildGraph中实现了代理定义,状态定义和状态转换的定义:void CAAPadCreateStCmd:BuildGraph() /- /1. 定义代理 /- /1.1 草图选择代理 _pSelSketchAgent = new CATPathElementAgent(SelSketch); _pSelSketc

12、hAgent-AddElementType(CATISketch); _pSelSketchAgent-SetBehavior(CATDlgEngWithPSOHSO); /1.2 初始化确定按钮代理 _pDlgOKAgent = new CATDialogAgent(OKAgent); _pDlgOKAgent-AcceptOnNotify(_pDlgInput, _pDlgInput-GetDiaOKNotification(); /- /2. 定义状态 /- /2.1 选择草图 CATDialogState* pSelSketchState = GetInitialState(选择一个草图); pSelSketchState-AddDialogAgent(_pSelSketchAgent); /2.2 点击确定 CATDialogState* pClickOKState = AddDialogState(输入拉伸长度并点击确定); pClickOKState-AddDialogAgent(_pDlgOKAgent); /-

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 资格认证/考试 > 自考

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号