牛刀小試之:我的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)編譯,更新顯示。
成功!!!