牛刀小试之:我的Addin
通过Addin可以在已有的Workshop,workbench中插入命令,对话框等交互式界面,经常使用到。
建立Addin的基本过程:
(1)、建立Workspace
(2)、建立Framework
(3)、定义Locate Prerequisite Workspaces
(4)、建立Module
(5)、修改程序代码,添加CreateCommands和CreateToolbars函数
(6)、建立命令响应对话框Dialog,并编写程序代码。
(7)、修改IdentityCard.h文件,加入已用API所属的Framework
(8)、修改Imakefile.mk文件,加入已用API所属的Module
(9)、用mkmk编译程序,并更新运行视图。
上述(1) 至 (4)同前,毋庸赘述。
下面的操作,请按图索骥。
(4)在当前module中,添加component
之后显示完成信息。下面是之后的工作区结构:
(5)修改相应的程序代码。
首先,在MyToolbar.h中增加包含文件:#include "CATCmdContainer.h"
在类定义中的public的析构函数后,加入两个函数的声明:
void CreateCommands();
CATCmdContainer* CreateToolbars();
然后再MyToolbar.cpp中添加:
在头包含文件部分增加:#include "CATCommandHeader.h"和#include “CATCreateWorkshop.h"
在包含文件之后声明命令声明的宏:MacDeclareHeader(MyToolbarHeader); 这个很重要。
在类函数的实现部分添加CreateCommands和CreateToolbars函数:
这里我只声明了一个命令,可以根据需要增加。需要注意构造函数:MyToolbarHeader的参数:
第一个是部件的名称,第二个是所在的模块,第三参数是要执行命令的实现类名,第四是命令参数。
CreateToolbar函数中,创建一个工具条和一个菜单项。(可以只创建其一)。
(6)修改需要添加的先决部件Framework。直接在文件IdentityCard.h中添加或通过菜单CAA5 Workspace->Define
Prerequisite Frameworks...添加。
修改Imakefile.mk文件,添加需链接的framework,如下图:
至此,准备工作完成。
点击菜单 生成->mkmk完成编译和链接。菜单:CAAV5 Workspace->Create/Update Runtime View更新Catia显示。
菜单:窗口->Open Runtime window。出现命令行: 输入cnext
现在,可以在给工具条和菜单添加命令了。
(6)添加命令
进入菜单:文件->CAAV5 Item->CATIA Resource->Command...
这里的命令名要注意,和之前在用Create Commands创建命令时一致。不同则修改为一致。
点击OK完成。然后就可以编辑编辑对话框。和VC差不多,添加Label,Button等,给按键添加响应函数等。
注意给Cancel,关闭窗口键添加响应函数:SetVisibility(CATDlgHide);RequestDelayedDestruction();
修改IdentityCard.h: 添加AddPrereqComponent : Dialog
在Imakefile.mk中添加模块:DIOPANV2
(7)编译,更新显示。
成功!!!