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

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

[复制链接]

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

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

admin 楼主

2017-1-16 17:14:52

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

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

x
Catia CAA 二次开发加入菜单工具条最简单的入门教程+ @; e& r- a+ f% f! D1 Q5 b

: B! c  Z5 _3 n. ^* d( J; y建立了一个空的Addin。在yourframe.dico文件中可以看到这个Addin的声明:* [1 W: N: r% W% c3 Z7 m
NewAddin        CATIPrtWksAddin        libPartDesignAddin: c- x. y  I. ~# j. y
但是,要创建一个工具条,我们还需要在这个类:NewAddin中添加一些函数。4 @1 @3 y4 c; J: ]$ h" Q( T3 ]5 ?5 S4 o
在NewAddin类中添加两个Public函数声明:# r$ K- x8 _- V" |8 u8 E4 n  R: w
           void CreateCommands();
# C( e4 j) ?# P) _# |+ wCATCmdContainer * CreateToolbars();
) E! N+ J5 {% f* a7 L在NewAddin.cpp中添加宏定义:" J9 i( p& G+ D9 x# i( t& Y/ \
       #include "CATCommandHeader.h"        
# E( I2 ~3 V7 ]. w6 \5 E, y7 J0 }MacDeclareHeader(PartCmdHeader);2 r* q  k2 i4 r5 }  K
这两个函数及宏都可以按ctrl+F1查到, CreateCommands里面的代码只是用 MacDeclareHeader生成的PartCmdHeader定义命令的header(不知道怎么翻译,就是工具条或菜单里面可以看到的执行命令的按钮了,这个命令是连接界面命令和实现代码的桥梁。)如:       
# X$ q: ~. j" I0 {3 ynew PartCmdHeader(“point”,“CmdModule”,“TestCmd”,(void *)NULL);
: G# e/ g! T1 H; ~) y& inew PartCmdHeader("line","CmdModule","LinCmd",(void *)NULL);! ~+ }' ^3 a) a6 p! j* e9 p) p
第一个参数是按钮的名字,第二、三个代表按钮执行的命令所在的module和命令的名字,参数四缺省就行了。
5 P3 {$ ]: R% q) H2 o* x2 k  T0 u( R. E/ N8 V
CreateToolbars里面就是要建的工具条和菜单的主要内容:$ ~; m) c6 ^* M! A/ `  h
        NewAccess(CATCmdContainer,pPartBenchTlb,PartBenchTlb);
/ f' \5 ~+ C& f2 r! \             NewAccess(CATCmdStarter,pPointCmd,PointCmd);
2 R8 Z7 w, U* v9 `+ P( N         SetAccessCommand(pPointCmd,"point");. J. q6 T) ]; F" G: }# Y
         SetAccessChild(pPartBenchTlb,pPointCmd);0 |: C- K" K5 j2 l3 o1 W
                 NewAccess(CATCmdStarter,pLineCmd,LineCmd);  z/ J; @2 A7 G% \$ J
         SetAccessCommand(pLineCmd,"line");. e, x) o* }' ]
         SetAccessNext(pPointCmd,pLineCmd); 0 {8 x. {/ Z, _. M1 p0 b* G7 M0 H
这三个函数都可以查到, 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.
- M) _* b5 f* a- v/ m0 s" o' l4 b  {# j1 N+ p- I; ], \# D. g4 g

$ E! w/ z, x8 v' ?  ^+ L& b' Q) V' U( c
NewAccess, SetAccessCommand, SetAccessChild, SetAccessNext等几个命令的使用。其具体含义可以参看API文档的说明。( SetAccessCommand 就是将starter与上面的PartCmdHeader 建立的东西连接了,注意参数“line” )其他的顾名就可思义。
$ X3 |* Z+ m5 [" G. S; }, Z( s! M
1 b: O6 E9 Z- t0 U4 k* y6 X* p0 r、此时编译,发生几个连接错误。主要是CATCmdContainer类型及Newaccess的定义的头文件及其Module的添加。在.h文件中加上:#include "CATCmdContainer.h"; h* I% e( ~/ k. C  u: X3 y! a9 j2 Q
在.cpp中加入:#include "CATCmdContainer.h"/ J  d0 p* T2 ]  y4 v4 F0 _# s/ \
#include "CATCreateWorkshop.h"/ j! r9 ]: j( j/ Q9 m" `
在.mk文件中加入:WIZARD_LINK_MODULES =  \1 y0 V: I3 L' W+ o1 J) F$ f( ^  l
JS0FM JS0GROUP PrtWorkshop MechanicalModelerUIUUID \
2 v" \" D2 z  E6 ~$ ?/ DCATApplicationFrame
: \* F$ r1 P1 O, ^; r, E# END WIZARD EDITION ZONE 7 H$ t2 e- a$ H9 f! W
LINK_WITH = $(WIZARD_LINK_MODULES)  \
& D/ ]7 ]& D6 X! @9 ?- N9 e; e          CATApplicationFrame
* N& Q. D' M% ?/ `- u在Identitycard.h中加入:1 }7 I, k( w" y5 X4 Q
AddPrereqComponent("ConstraintModelerUI",Protected);
1 A7 X$ l. h* o0 p2 [' Y注意:每次换行时,都要加一斜线用来继续执行下面的module.
) l* j' t% c7 D/ z2 R  B1 M2 Q, k) a& W
到此addin就做成了。剩下的就是定义资源文件,也就是换换名字或给按钮连接个图片。和前面的workbench一样工具条名字在“NewAddin.CATNIS”中进行定义:
. u$ X- u$ V1 Y  c+ sPartBenchTlb.Title=”测试工具条”;9 R+ T! L. C& e; d% o
在NewAddin.CATRsc定义图片。
  R9 e8 h6 H. n1 q; I8 G4 pNewAddin.point.Icon.Normal = “I_CAAPoint” ;(图片一般放在cnext/resource graphic\ Icon\Normal文件加下 , NewAddin.CATRsc文件可能不会自动生成,你可以在相应的文件加下新建一个问本文档,把后缀改成CATRsc再在VC里刷新你的工程就有了)。# |/ p* \+ }6 |: c, o  U* E& J& o
- ~" P2 E0 g) ~3 T; m8 ^; u' H

' k& j4 i$ b4 f9 A5 t. r( x
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了