PLM之家PLMHome-国产软件践行者

Catia CAA 二次开发加入菜单工具条最简单的入门教程

[复制链接]

2017-1-16 17:14:52 3086 0

admin 发表于 2017-1-16 17:14:52 |阅读模式

admin 楼主

2017-1-16 17:14:52

请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!

您需要 登录 才可以下载或查看,没有账号?注册

x
Catia CAA 二次开发加入菜单工具条最简单的入门教程, q: v% G+ B5 Y9 i. i
1 F! t# R; u0 x4 F1 x/ \
建立了一个空的Addin。在yourframe.dico文件中可以看到这个Addin的声明:
" K" g) M. _' x0 d; ONewAddin        CATIPrtWksAddin        libPartDesignAddin
1 |9 H9 J* d# V1 ~但是,要创建一个工具条,我们还需要在这个类:NewAddin中添加一些函数。
! k- _4 ?- A* c, }( u在NewAddin类中添加两个Public函数声明:4 r1 d5 p! M1 i5 v; W
           void CreateCommands();
; z) l+ K4 P/ N& qCATCmdContainer * CreateToolbars();
* H* M/ o0 o3 V4 |1 d* B; ?$ E1 w在NewAddin.cpp中添加宏定义:
9 t# M% `7 U6 L( f       #include "CATCommandHeader.h"        0 u0 F$ n% \3 b: A7 N
MacDeclareHeader(PartCmdHeader);
7 H' E6 i6 {/ E; w0 n这两个函数及宏都可以按ctrl+F1查到, CreateCommands里面的代码只是用 MacDeclareHeader生成的PartCmdHeader定义命令的header(不知道怎么翻译,就是工具条或菜单里面可以看到的执行命令的按钮了,这个命令是连接界面命令和实现代码的桥梁。)如:          p4 t3 k# L9 i8 F+ L" W" S/ E
new PartCmdHeader(“point”,“CmdModule”,“TestCmd”,(void *)NULL);; ?! e' q% |6 A! f
new PartCmdHeader("line","CmdModule","LinCmd",(void *)NULL);0 T; }, ?( C2 @, _) H
第一个参数是按钮的名字,第二、三个代表按钮执行的命令所在的module和命令的名字,参数四缺省就行了。& c1 D' H6 v/ X8 _- T. S6 |3 d
$ L* r+ {6 l% Z" L
CreateToolbars里面就是要建的工具条和菜单的主要内容:
  h' J+ M. t& @, j5 i        NewAccess(CATCmdContainer,pPartBenchTlb,PartBenchTlb);
( Z1 g( _% y" l/ _. n$ c' {             NewAccess(CATCmdStarter,pPointCmd,PointCmd);) i6 O. q9 ~4 Q3 `
         SetAccessCommand(pPointCmd,"point");$ O; e& Y6 y9 M
         SetAccessChild(pPartBenchTlb,pPointCmd);( n1 b5 E/ t7 G& m: g3 ]# q
                 NewAccess(CATCmdStarter,pLineCmd,LineCmd);
6 {8 q& E$ W( [& B         SetAccessCommand(pLineCmd,"line");6 f* d6 r8 O0 @
         SetAccessNext(pPointCmd,pLineCmd);
+ [. J% D6 }2 l- _& a! f这三个函数都可以查到, NewAccess肯定是新建了,常用的类有CATCmdWorkbench(The workbench's access is a CATCmdContainer which contains containers: one for it's menubar and one for each toolbar. ) 、CATCmdContainer(Class to create the container's access like a menubar, a menu, a submenu, a toolbar or an icon box) 、 CATCmdStarter、(A starter is a leaf of the workshop's accesses tree. At each starter you attach a CATCommandHeader to launch the associated command.! G. e9 D! T/ Q7 l
) v5 R$ c  j0 o, L# t- K! x1 M1 F

+ z: I% b' F7 ~3 H  w# ^  T
( x& J) g5 }8 x0 pNewAccess, SetAccessCommand, SetAccessChild, SetAccessNext等几个命令的使用。其具体含义可以参看API文档的说明。( SetAccessCommand 就是将starter与上面的PartCmdHeader 建立的东西连接了,注意参数“line” )其他的顾名就可思义。
* K* L  N4 m3 N
, v- [1 _' [6 x6 H、此时编译,发生几个连接错误。主要是CATCmdContainer类型及Newaccess的定义的头文件及其Module的添加。在.h文件中加上:#include "CATCmdContainer.h"
3 Q# N9 u7 N; y* ]在.cpp中加入:#include "CATCmdContainer.h"
3 Q) r7 W+ z) O" a#include "CATCreateWorkshop.h"
( \0 F0 c. h" }' V+ g% u8 n在.mk文件中加入:WIZARD_LINK_MODULES =  \
3 [6 Z" S* i* B# N+ R% \# JJS0FM JS0GROUP PrtWorkshop MechanicalModelerUIUUID \
) y5 [" j3 Y* L2 `; {CATApplicationFrame# N; z" M8 W2 O/ G6 z& O/ d
# END WIZARD EDITION ZONE
% Z( L: v8 x, }/ D! wLINK_WITH = $(WIZARD_LINK_MODULES)  \
: U9 y  k7 S9 V. Y; r% p) ~          CATApplicationFrame
- ?" V- S7 Y9 ?在Identitycard.h中加入:. g3 U7 g8 d- z+ t0 Y
AddPrereqComponent("ConstraintModelerUI",Protected);
3 @/ ?* L7 f) N+ Z5 u2 k  @2 F. U8 b注意:每次换行时,都要加一斜线用来继续执行下面的module.
7 x$ _" k* k: v7 |9 d7 S0 `" b5 k" h, ]9 M$ O7 H; n
到此addin就做成了。剩下的就是定义资源文件,也就是换换名字或给按钮连接个图片。和前面的workbench一样工具条名字在“NewAddin.CATNIS”中进行定义:
  c4 v0 q9 v9 r  Y- t8 ^PartBenchTlb.Title=”测试工具条”;5 W( z. ]/ j/ g! U6 K
在NewAddin.CATRsc定义图片。
  N# c/ M5 B0 NNewAddin.point.Icon.Normal = “I_CAAPoint” ;(图片一般放在cnext/resource graphic\ Icon\Normal文件加下 , NewAddin.CATRsc文件可能不会自动生成,你可以在相应的文件加下新建一个问本文档,把后缀改成CATRsc再在VC里刷新你的工程就有了)。
: i. Y" L1 |  X7 t! A1 `3 ^1 }& z# |; X& P+ M# W2 y& J2 m9 ?
, Q$ a. n$ n" q; _3 u
上海点团信息科技有限公司,承接UG NX,CATIA,CREO,Solidworks 等CAx软件,Teamcenter,3D Experience等PLM软件,工业4.0数字化软件的实施\二次开发\培训相关业务,详情QQ 939801026 Tel 18301858168 网址 doTeam.tech
回复

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 注册

返回列表 本版积分规则

  • 发布新帖

  • 在线客服

  • 微信

  • 客户端

  • 返回顶部

  • x
    温馨提示

    本网站(plmhome.com)为PLM之家工业软件学习官网站

    展示的视频材料全部免费,需要高清和特殊技术支持请联系 QQ: 939801026

    PLM之家NX CAM二次开发专题模块培训报名开始啦

    我知道了