通过CAA在CATIA中创建自己的工具栏按钮和菜单
来源:互联网 发布:淘宝店铺装修百度视频 编辑:程序博客网 时间:2024/04/29 17:26
注:本文在CATIA P3 V5R19和VS2005下实现,文中的链接请自己在CAADoc中寻找
Command(命令) 和 Access(按钮/菜单) 通过 Command Header联系起来
各个标识符的命名习惯请参考Checklist for CAA V5 C++ Naming Rules
一、准备工作
1. 创建Workspace
2. Locate Prerequisite Workspaces
3. 创建Framework,Implementation / Development
二、创建Addin
1. 创建Module,shared object
2. 插入Component
Component name:Addin名字
Interfaces adhesion:附着的接口。BOA/TIE/TIE chain为三种模式,具体区别见pdf和CAADoc中的Working with the RADE Dashboards - Part 2。(请选择TIE,BOA在运行时会出错)
3. 选择Interface
Search Workspace:CATIA的安装路径,注意最下面的复选框不要勾上
Interface 决定了工具栏/按钮出现在哪个 Workshop/ Workbench 中,如CATIPrtWksAddin则出现在零件设计中
具体见CAADoc——C++ API——Object/Class Hierarchy
三、创建Command
1. 创建Module,shared object
2. 插入Command
见下图,各选项作用具体见Working with the RADE Dashboards - Part 2
四、代码实现——Addin部分
大部分代码已自动生成,需要自己添加的如下:
.h文件中:
预编译部分
class CATCmdContainer; // 声明类,下面要用到返回值类型CATCmdContainer*
类声明public部分:
//------------------------添加创建Toolbar和Command Header的函数----------------------// void CreateCommands(); CATCmdContainer * CreateToolbars();//-----------------------------------------------------------------------------------//
.cpp文件中:
预编译部分
#include "CATCmdContainer.h"#include "CATCreateWorkshop.h" // 包含管理 Access 的一系列宏#include "CATCommandHeader.h" MacDeclareHeader(WorkblankHdr); // 该宏用于创建 command header class,一个class内可创建(new)多个command header
函数实现部分
void WorkblankToolbar::CreateCommands(){ new WorkblankHdr( "Generate", // command header标识符(也用于定义显示的文本或图标等资源) "WorkblankCmds", // 所关联command的代码在哪个模块/库/DLL里 "GenerateCmd", // 所关联的command名(即类名) (void *)NULL); // 可选的传递参数(传递给command,确定不同的操作)}CATCmdContainer* WorkblankToolbar::CreateToolbars(){ NewAccess ( CATCmdContainer, pWorkblankTlb, WorkblankTlb ); // 参数1:工具栏是CATCmdContainer的实例 // 参数2:指向该工具栏的句柄指针 // 参数3:该工具栏的标识符 // 2和3自己命名,保证标识符唯一 NewAccess ( CATCmdStarter, pWorkblankStr, WorkblankStr ); // 按钮是CATCmdStarter的实例,后两个同上 SetAccessCommand ( pWorkblankStr, "Generate" ); // 关联(按钮句柄,Command Header标识符) SetAccessChild ( pWorkblankTlb , pWorkblankStr ); // 设置父子关系(父句柄,子句柄) // 若在该工具栏上再添加一个按钮,则第三行改为设置邻接关系: // SetAccessNext (WorkblankStr, 按钮句柄); AddToolbarView ( pWorkblankTlb , 1 , Left ); // 参数1:工具栏句柄 // 参数2:1 工具栏可见,-1(默认) 不可见 // 参数3:工具栏固定在右边 return pWorkblankTlb;}
更多实例请参见 Creating Standard Command Headers 和Creating an Add-in
六、编译链接
1. Addin模块的 Imakefile.mk 中添加
LINK_WITH = $(WIZARD_LINK_MODULES) CATApplicationFrame
2. Framework的 IdentityCard.h 中添加
AddPrereqComponent ("ApplicationFrame",Protected);
3. mkmk
4. Create/Update Runtime View
5. Open Runtime Windows
输入 cnext,等待CATIA打开
若此前 Addin 附着的接口是 CATIPrtWksAddin,则此时进入 零件设计 或线框和曲面设计,将看到刚才建立的按钮或菜单
七、代码实现——Command部分
重载以下三个函数,完成需要实现的功能。
(注意,我们选择的Command类型是Basic Command,相当于一个勾选框。如果要实现其他类型的按钮,可以选择Statechart Command)
Activate():按钮激活时的动作
Desactivate ():按钮失去焦点时的动作
Cancel:命令被撤销时的动作
- 通过CAA在CATIA中创建自己的工具栏按钮和菜单
- 通过CAA在CATIA中创建自己的工具栏按钮和菜单
- Excel VBA创建自己的工具栏和菜单
- Qt中创建菜单和工具栏的一点总结
- Qt中创建菜单和工具栏
- Delphi中菜单与工具栏按钮的状态控制
- 在VFP中定制自己的工具栏
- 详解VC6.0中自己手动实现代码注释和取消注释的工具栏按钮功能
- C#第十周任务之最后一项之创建一个如下的窗体,并在窗体上放置一个菜单、一个工具栏控件。菜单内容如第二个图所示。工具栏上有两个按钮,分别对应“打开文本文件”、“保存文本文件”。菜单和工具栏具体功能实现可
- 通过VBA在Excel中添加菜单和菜单项按钮(Excel启动时候添加)
- CATIA二次开发CAA实现树形控件的方法
- VC.NET界面编程中关于的ToolBar(工具栏)的编程应用(二)2008/07/01 19:22 上回说到给工具栏上添加IE风格的下拉菜单按钮,我们通过设置工具栏按钮的风格已经完成了下拉菜单按钮的添加,现在我们准备为下拉菜单按钮中响应下拉箭头部分的实现
- MFC 实现工具栏按钮和菜单使能禁能
- 在网页中自己创建右键菜单
- Catia CAA二次开发系列一
- Catia CAA二次开发系列二
- Catia CAA 二次开发----batch program
- CATIA二次开发:CAA实现状态机
- 设计模式——迪米特法则
- c++ java 用protobuf通讯
- 六边形UI效果
- 初识CAA
- Ubuntu 13.10 64位 ia32-libs未发现软件包 解决办法
- 通过CAA在CATIA中创建自己的工具栏按钮和菜单
- oracle---dual 的用法讲解
- Catia CAA 二次开发----batch program
- maven 编译部署src/main/java下的资源文件
- CATIA Automation 编程初探
- Ubuntu如何修改计算机名称
- 多流向算法gpu并行化
- 求出二叉树中找出和为某一值的所有路径
- Visual Studio2013编译报错,“因为计算机丢失MVSCRR120D.dll”解决办法