PLM之家PLMHome-工业软件践行者

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

[复制链接]

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

2470

主题

1275

回帖

8万

积分

管理员

PLM之家站长

积分
82166
QQ
发表于 2017-1-16 17:14:52 | 显示全部楼层 |阅读模式

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

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

x
Catia CAA 二次开发加入菜单工具条最简单的入门教程
7 ~$ C, A; m! u) m# u9 N' @- q* k. i$ k% z0 O
建立了一个空的Addin。在yourframe.dico文件中可以看到这个Addin的声明:
* Y8 M- P$ n% g: [# hNewAddin        CATIPrtWksAddin        libPartDesignAddin5 D8 q$ W" q6 }  `- J
但是,要创建一个工具条,我们还需要在这个类:NewAddin中添加一些函数。$ p* K6 y  `8 o* ~: b4 h0 G" @
在NewAddin类中添加两个Public函数声明:
7 M. C+ J' s+ Z- W: |7 Z* y/ I           void CreateCommands();+ n/ b  c% G& z- e+ K( q  O
CATCmdContainer * CreateToolbars();. s% y1 @. E+ u( J
在NewAddin.cpp中添加宏定义:
* S2 s1 [% A) E6 |8 f, q       #include "CATCommandHeader.h"        
: r% [" d4 C* I1 tMacDeclareHeader(PartCmdHeader);
  Q/ r& c% z% ?这两个函数及宏都可以按ctrl+F1查到, CreateCommands里面的代码只是用 MacDeclareHeader生成的PartCmdHeader定义命令的header(不知道怎么翻译,就是工具条或菜单里面可以看到的执行命令的按钮了,这个命令是连接界面命令和实现代码的桥梁。)如:        5 i; Z! C3 s: g1 Q5 ~# \, X& `
new PartCmdHeader(“point”,“CmdModule”,“TestCmd”,(void *)NULL);
7 ]* C* s. o. [) u% ^+ r! lnew PartCmdHeader("line","CmdModule","LinCmd",(void *)NULL);
# {" w. s" R; B3 l# A( o第一个参数是按钮的名字,第二、三个代表按钮执行的命令所在的module和命令的名字,参数四缺省就行了。1 V5 Y' p0 [% |8 j3 j. W7 p8 s
  ]- z, R' k1 k' k
CreateToolbars里面就是要建的工具条和菜单的主要内容:
( M4 ?/ o" p# I3 g7 @& B2 E. K        NewAccess(CATCmdContainer,pPartBenchTlb,PartBenchTlb);/ l; h' q8 q: k5 u/ H5 s2 C
             NewAccess(CATCmdStarter,pPointCmd,PointCmd);
" U1 p  S; U% e8 L  \+ x  i2 K         SetAccessCommand(pPointCmd,"point");6 w7 C! A& h. B# o
         SetAccessChild(pPartBenchTlb,pPointCmd);
9 D1 i4 Q) C# i4 a0 D                 NewAccess(CATCmdStarter,pLineCmd,LineCmd);8 h6 d  B2 w( I
         SetAccessCommand(pLineCmd,"line");
0 s% P7 m/ s; b- v' Z" E) x6 C( R         SetAccessNext(pPointCmd,pLineCmd); , y* G& s/ u" d  i
这三个函数都可以查到, 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.
% F+ I/ U9 o4 F; U
7 ?( X3 G$ q8 _5 K" {3 H, w5 y# Q! J! q4 l6 Z

! G; I$ Z. \6 x% w; s, K; a/ G- L* iNewAccess, SetAccessCommand, SetAccessChild, SetAccessNext等几个命令的使用。其具体含义可以参看API文档的说明。( SetAccessCommand 就是将starter与上面的PartCmdHeader 建立的东西连接了,注意参数“line” )其他的顾名就可思义。
8 Q% n8 I4 X: A$ N8 `* X
# `% s6 }/ b  z. [# `& e  F、此时编译,发生几个连接错误。主要是CATCmdContainer类型及Newaccess的定义的头文件及其Module的添加。在.h文件中加上:#include "CATCmdContainer.h"
" k+ S  D. f/ R1 N7 E在.cpp中加入:#include "CATCmdContainer.h"
) y+ t: a" _% [#include "CATCreateWorkshop.h"
% G( Y0 ]4 c% K3 ?$ y! F' q. {在.mk文件中加入:WIZARD_LINK_MODULES =  \. n2 j7 U$ j2 X- F) {
JS0FM JS0GROUP PrtWorkshop MechanicalModelerUIUUID \
0 l% G* \# K/ q% G+ ]0 ?  T; RCATApplicationFrame# R9 B4 e9 J4 C) h
# END WIZARD EDITION ZONE
3 X. ~2 f  Z7 ^% `6 ZLINK_WITH = $(WIZARD_LINK_MODULES)  \( _0 u$ i; F. a2 T6 B+ E5 Q* v( v4 ?
          CATApplicationFrame 1 V" X4 l+ c5 S
在Identitycard.h中加入:
7 p/ B$ ]# r7 \/ |AddPrereqComponent("ConstraintModelerUI",Protected);& z$ r+ B8 J( d$ {2 u( Y
注意:每次换行时,都要加一斜线用来继续执行下面的module.! B' c6 j7 u/ x% n4 @5 x

; Z5 J0 y; y# I- Y到此addin就做成了。剩下的就是定义资源文件,也就是换换名字或给按钮连接个图片。和前面的workbench一样工具条名字在“NewAddin.CATNIS”中进行定义:
$ @) w& R" ?7 Z" pPartBenchTlb.Title=”测试工具条”;" a* f. x/ t$ h
在NewAddin.CATRsc定义图片。  ?% V6 h' T' ]( G8 k- A
NewAddin.point.Icon.Normal = “I_CAAPoint” ;(图片一般放在cnext/resource graphic\ Icon\Normal文件加下 , NewAddin.CATRsc文件可能不会自动生成,你可以在相应的文件加下新建一个问本文档,把后缀改成CATRsc再在VC里刷新你的工程就有了)。/ O! E5 O) F+ F: G: g
% [  m5 g$ q: h1 U
& G4 A9 f( E. e! T0 n) a
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了