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

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

[复制链接]

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

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

admin 楼主

2017-1-16 17:14:52

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

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

x
Catia CAA 二次开发加入菜单工具条最简单的入门教程
3 C* h  W# G! o' V3 B& C
: y7 L' ?6 |( r( u建立了一个空的Addin。在yourframe.dico文件中可以看到这个Addin的声明:
/ N" k8 i) s# gNewAddin        CATIPrtWksAddin        libPartDesignAddin& ]9 Q2 _( n& `: H
但是,要创建一个工具条,我们还需要在这个类:NewAddin中添加一些函数。7 K! F/ k- s  U/ U3 ]
在NewAddin类中添加两个Public函数声明:
# q) K7 B' z: R" Y3 O. ~- t8 p. s           void CreateCommands();
/ a( d3 F6 p$ L. i+ \% |! aCATCmdContainer * CreateToolbars();
0 t7 r  |" ^: Y) K# t" X在NewAddin.cpp中添加宏定义:) x" R0 v; H5 Z; R) ~: R
       #include "CATCommandHeader.h"        " o7 k% v+ L1 \+ C$ [: ~/ }
MacDeclareHeader(PartCmdHeader);
  r0 g; C' \* j) R$ ~; C# ]0 b这两个函数及宏都可以按ctrl+F1查到, CreateCommands里面的代码只是用 MacDeclareHeader生成的PartCmdHeader定义命令的header(不知道怎么翻译,就是工具条或菜单里面可以看到的执行命令的按钮了,这个命令是连接界面命令和实现代码的桥梁。)如:       
$ y+ s+ }) c$ m& c. Snew PartCmdHeader(“point”,“CmdModule”,“TestCmd”,(void *)NULL);8 Y0 G4 a8 h+ k9 k4 N# r' ~: P
new PartCmdHeader("line","CmdModule","LinCmd",(void *)NULL);3 p$ P& ^: Y$ u" h; z
第一个参数是按钮的名字,第二、三个代表按钮执行的命令所在的module和命令的名字,参数四缺省就行了。
) `2 d) ^5 ?2 X8 W1 O  I; ]
2 x8 o2 u/ L7 C& ?) k/ _ CreateToolbars里面就是要建的工具条和菜单的主要内容:/ W4 g& f; s& x4 H( W% t. A" {
        NewAccess(CATCmdContainer,pPartBenchTlb,PartBenchTlb);
  t0 _9 k9 c  s; M% h; h             NewAccess(CATCmdStarter,pPointCmd,PointCmd);
/ j) U5 w$ `8 }% x. T8 _         SetAccessCommand(pPointCmd,"point");$ `; s# `+ P  r, c( j
         SetAccessChild(pPartBenchTlb,pPointCmd);$ i5 m' Q0 o  G/ E
                 NewAccess(CATCmdStarter,pLineCmd,LineCmd);7 d8 F* V, W$ J  W; Q
         SetAccessCommand(pLineCmd,"line");+ z2 C  z7 d, ^) |2 d! {  d
         SetAccessNext(pPointCmd,pLineCmd); 5 @) {7 Y6 B  r* v; {
这三个函数都可以查到, 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+ a2 s, d% J9 M9 y
9 Q5 u, n; k# Y, T) v
$ J  c2 e! O) p$ f' p% t1 C3 W( P; I) k' Q& J
NewAccess, SetAccessCommand, SetAccessChild, SetAccessNext等几个命令的使用。其具体含义可以参看API文档的说明。( SetAccessCommand 就是将starter与上面的PartCmdHeader 建立的东西连接了,注意参数“line” )其他的顾名就可思义。
- L$ G6 {' A# A! i* Z5 h0 |% k5 [
、此时编译,发生几个连接错误。主要是CATCmdContainer类型及Newaccess的定义的头文件及其Module的添加。在.h文件中加上:#include "CATCmdContainer.h"9 k: H& K$ C: r1 d% }6 h7 \
在.cpp中加入:#include "CATCmdContainer.h"5 P' g# h7 x  w
#include "CATCreateWorkshop.h"
9 Y3 i" c. B, ^5 {4 a在.mk文件中加入:WIZARD_LINK_MODULES =  \+ G* m* u  Q4 [4 h7 b  [
JS0FM JS0GROUP PrtWorkshop MechanicalModelerUIUUID \$ V+ [5 c8 ?3 q! ]% C4 t
CATApplicationFrame/ u: z: i7 F1 C8 e
# END WIZARD EDITION ZONE
" H3 q2 y, E) C7 t9 _8 o( b1 PLINK_WITH = $(WIZARD_LINK_MODULES)  \
, }; r" ~6 w" u5 U' Q% s2 `          CATApplicationFrame / |! j1 v# ~- _* X
在Identitycard.h中加入:3 I! Y. v" X! I. M3 \5 v
AddPrereqComponent("ConstraintModelerUI",Protected);
" _4 P) m* I5 S' c1 e8 B& R7 X注意:每次换行时,都要加一斜线用来继续执行下面的module.; G5 K: ?3 Q$ n

$ Z  n. f) i7 X到此addin就做成了。剩下的就是定义资源文件,也就是换换名字或给按钮连接个图片。和前面的workbench一样工具条名字在“NewAddin.CATNIS”中进行定义:
$ S- @0 W# {6 D( APartBenchTlb.Title=”测试工具条”;* J" b) c. v% Q* a4 E, x3 E
在NewAddin.CATRsc定义图片。
1 J. u5 U" _* X' INewAddin.point.Icon.Normal = “I_CAAPoint” ;(图片一般放在cnext/resource graphic\ Icon\Normal文件加下 , NewAddin.CATRsc文件可能不会自动生成,你可以在相应的文件加下新建一个问本文档,把后缀改成CATRsc再在VC里刷新你的工程就有了)。. ], _7 F6 X7 t) D+ L( E
4 E+ d" G, B" j$ S

4 v4 U; R, d' F1 M" w9 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二次开发专题模块培训报名开始啦

    我知道了