PLM之家PLMHome-工业软件与AI结合践行者

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

[复制链接]

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

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

admin 楼主

2017-1-16 17:14:52

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

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

x
Catia CAA 二次开发加入菜单工具条最简单的入门教程
. Z5 W6 Q) h' K+ T7 u% ~3 Y9 ~" [* Q+ c1 B
建立了一个空的Addin。在yourframe.dico文件中可以看到这个Addin的声明:
: \7 Z5 h) j+ GNewAddin        CATIPrtWksAddin        libPartDesignAddin
5 N. q2 v+ b* C0 L5 J# k但是,要创建一个工具条,我们还需要在这个类:NewAddin中添加一些函数。9 J: D. U2 J8 p8 ~  G$ A9 B
在NewAddin类中添加两个Public函数声明:# z3 f4 Q5 g+ h- ?/ z; t
           void CreateCommands();
1 y; T0 y. z9 V9 I% S' sCATCmdContainer * CreateToolbars();5 _: j3 k6 v$ Z& {8 C! p9 E
在NewAddin.cpp中添加宏定义:+ e6 C7 U+ X! t2 k
       #include "CATCommandHeader.h"        $ g, ~6 \4 y: n  K+ _) F
MacDeclareHeader(PartCmdHeader);
7 {( R/ q% k% q: }5 O3 M/ B这两个函数及宏都可以按ctrl+F1查到, CreateCommands里面的代码只是用 MacDeclareHeader生成的PartCmdHeader定义命令的header(不知道怎么翻译,就是工具条或菜单里面可以看到的执行命令的按钮了,这个命令是连接界面命令和实现代码的桥梁。)如:        % O  C' B" N+ |; u5 p7 `
new PartCmdHeader(“point”,“CmdModule”,“TestCmd”,(void *)NULL);0 t  u" D" P/ i( D3 p
new PartCmdHeader("line","CmdModule","LinCmd",(void *)NULL);
: V  d+ b' n) e) Y, h6 B: Z第一个参数是按钮的名字,第二、三个代表按钮执行的命令所在的module和命令的名字,参数四缺省就行了。2 m) L2 T: X! h
& {  j$ L" m$ R; l: V' h
CreateToolbars里面就是要建的工具条和菜单的主要内容:
" q/ C' I4 s2 [% k        NewAccess(CATCmdContainer,pPartBenchTlb,PartBenchTlb);
9 B2 K5 _, o7 P$ S  d# c( ^             NewAccess(CATCmdStarter,pPointCmd,PointCmd);* U5 q" ~: @* {9 Q3 z* ~1 D1 v2 V
         SetAccessCommand(pPointCmd,"point");% Z: Q4 Q5 x; k) Q/ y: \/ G0 l- r
         SetAccessChild(pPartBenchTlb,pPointCmd);- D, J7 V) S, z( T- L0 i8 @+ C
                 NewAccess(CATCmdStarter,pLineCmd,LineCmd);
) D4 L/ c' C1 G8 x5 g% }  s         SetAccessCommand(pLineCmd,"line");
6 A+ Q9 Y* q+ W% o         SetAccessNext(pPointCmd,pLineCmd);
5 \9 T6 E& c1 Z这三个函数都可以查到, 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.
1 V  F8 y, p0 u6 T8 T& t
$ g+ h0 s9 f( r+ |
5 v- l3 v( Z, P# g& A# B
  R$ z8 K" x: e! @7 GNewAccess, SetAccessCommand, SetAccessChild, SetAccessNext等几个命令的使用。其具体含义可以参看API文档的说明。( SetAccessCommand 就是将starter与上面的PartCmdHeader 建立的东西连接了,注意参数“line” )其他的顾名就可思义。
! U# m: C1 S7 m2 P
9 g: }) y4 |3 n, s6 ]6 ]) I、此时编译,发生几个连接错误。主要是CATCmdContainer类型及Newaccess的定义的头文件及其Module的添加。在.h文件中加上:#include "CATCmdContainer.h"0 F; q3 n, m' ~
在.cpp中加入:#include "CATCmdContainer.h"
7 a7 H' ]7 J. u* Q#include "CATCreateWorkshop.h"2 m5 `: D( x5 F; f
在.mk文件中加入:WIZARD_LINK_MODULES =  \* J' o( h6 h5 b5 e2 ]6 N  w
JS0FM JS0GROUP PrtWorkshop MechanicalModelerUIUUID \
; O" u# U+ H1 [3 d6 I7 B" H6 {( o& r, YCATApplicationFrame  ]( z. G# t, q7 p* n
# END WIZARD EDITION ZONE
" `& Y5 a7 F' f. _$ S& E, uLINK_WITH = $(WIZARD_LINK_MODULES)  \
" g. r* T9 J7 y          CATApplicationFrame 3 u- {2 `- a: C9 U( W
在Identitycard.h中加入:. \' A; k9 V3 v% M9 w
AddPrereqComponent("ConstraintModelerUI",Protected);
! Z  g4 N- j+ l0 f注意:每次换行时,都要加一斜线用来继续执行下面的module.' {# g% H9 ]3 W

( M0 M- G  Q/ e$ h4 x7 U) `! E到此addin就做成了。剩下的就是定义资源文件,也就是换换名字或给按钮连接个图片。和前面的workbench一样工具条名字在“NewAddin.CATNIS”中进行定义:
0 e" H5 R* \) fPartBenchTlb.Title=”测试工具条”;, h6 g* O# `9 i' B* X! p
在NewAddin.CATRsc定义图片。& T4 C3 B3 @2 Q6 ]3 }. ~
NewAddin.point.Icon.Normal = “I_CAAPoint” ;(图片一般放在cnext/resource graphic\ Icon\Normal文件加下 , NewAddin.CATRsc文件可能不会自动生成,你可以在相应的文件加下新建一个问本文档,把后缀改成CATRsc再在VC里刷新你的工程就有了)。( p/ @% p4 N8 I/ e

8 [+ g% Q: D5 c( }8 y6 }$ x9 A3 n- {1 h
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了