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

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

[复制链接]

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

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

admin 楼主

2017-1-16 17:14:52

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

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

x
Catia CAA 二次开发加入菜单工具条最简单的入门教程; s6 a7 v  q1 [# l0 W& t
8 {2 M5 a0 E! y, {* Z
建立了一个空的Addin。在yourframe.dico文件中可以看到这个Addin的声明:
0 y* Q1 B3 k. v5 x: z# Y! ]NewAddin        CATIPrtWksAddin        libPartDesignAddin4 o" T: g- p0 Y& A: M+ ^) g5 I: g! d
但是,要创建一个工具条,我们还需要在这个类:NewAddin中添加一些函数。
8 P7 w/ Q! f# Q6 D% S; z+ ~在NewAddin类中添加两个Public函数声明:
+ d9 i' z( q. V$ b3 a% \2 @/ n' ]2 l5 f2 ]           void CreateCommands();# g9 |4 ?& d5 B1 C
CATCmdContainer * CreateToolbars();; B, {& Z- k( U4 M1 ~$ l
在NewAddin.cpp中添加宏定义:
5 r0 o2 W' }1 A! `  D       #include "CATCommandHeader.h"        % M# j% S' u& z1 P1 O
MacDeclareHeader(PartCmdHeader);1 C/ `9 [) P1 W' a& i0 f
这两个函数及宏都可以按ctrl+F1查到, CreateCommands里面的代码只是用 MacDeclareHeader生成的PartCmdHeader定义命令的header(不知道怎么翻译,就是工具条或菜单里面可以看到的执行命令的按钮了,这个命令是连接界面命令和实现代码的桥梁。)如:       
8 ^+ H/ _3 N- S" V; Inew PartCmdHeader(“point”,“CmdModule”,“TestCmd”,(void *)NULL);  Q" A6 N7 x: o7 M* Y7 R! C) d
new PartCmdHeader("line","CmdModule","LinCmd",(void *)NULL);: A( n- s  q, d: ]1 t, X' T
第一个参数是按钮的名字,第二、三个代表按钮执行的命令所在的module和命令的名字,参数四缺省就行了。$ W. _% {" ]& O# P( U

: N# N- f" F1 g% y3 e  C8 M CreateToolbars里面就是要建的工具条和菜单的主要内容:
. r* X% w  \1 q, @! n        NewAccess(CATCmdContainer,pPartBenchTlb,PartBenchTlb);7 i, g0 Q0 n% E3 D
             NewAccess(CATCmdStarter,pPointCmd,PointCmd);# F: \5 U; h6 o: K  d* Z+ \. W* _
         SetAccessCommand(pPointCmd,"point");
# M+ K6 h/ Q! R         SetAccessChild(pPartBenchTlb,pPointCmd);
$ }+ O5 B/ A% A6 n/ [- K8 d                 NewAccess(CATCmdStarter,pLineCmd,LineCmd);
0 w2 v- V% N- ~4 _$ e7 O         SetAccessCommand(pLineCmd,"line");, \# I% z3 f8 {& B
         SetAccessNext(pPointCmd,pLineCmd);
' x& w7 Z) i5 Q4 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.- w0 E6 q& o7 j3 ~! r4 j
  R  E" P2 W& Q  w3 i& B* i

5 Q, L9 X! u2 m8 z: x$ p* `9 p" E
9 T$ x9 o  a, D* V) B) pNewAccess, SetAccessCommand, SetAccessChild, SetAccessNext等几个命令的使用。其具体含义可以参看API文档的说明。( SetAccessCommand 就是将starter与上面的PartCmdHeader 建立的东西连接了,注意参数“line” )其他的顾名就可思义。0 \# ^; z4 y" O
$ C1 h7 b# M7 \1 g" l
、此时编译,发生几个连接错误。主要是CATCmdContainer类型及Newaccess的定义的头文件及其Module的添加。在.h文件中加上:#include "CATCmdContainer.h"
4 D2 D# F+ R0 H7 N- q/ q在.cpp中加入:#include "CATCmdContainer.h"
0 u( V. \2 [4 o5 n2 a( e#include "CATCreateWorkshop.h"" y, p: g1 e' O8 g( f( E2 f1 H, G
在.mk文件中加入:WIZARD_LINK_MODULES =  \: n: l" Z1 ]) ?2 E7 ^
JS0FM JS0GROUP PrtWorkshop MechanicalModelerUIUUID \
) [1 }6 J8 g: B9 PCATApplicationFrame
+ q5 O3 T& e4 B& [/ ^# END WIZARD EDITION ZONE 9 M& v$ V; q9 Z9 B( v  i
LINK_WITH = $(WIZARD_LINK_MODULES)  \: m) R8 r* c4 @+ s$ [
          CATApplicationFrame
! M$ M) E$ G1 n* K. M在Identitycard.h中加入:% }$ g/ \( M4 `5 G+ c# x- {
AddPrereqComponent("ConstraintModelerUI",Protected);
' B. }) z# E' N' R/ Z2 c9 o7 K$ F注意:每次换行时,都要加一斜线用来继续执行下面的module.# l% o- I  u8 h  h" R1 m( ~

; l  s. c1 U7 p+ G( W2 s) j到此addin就做成了。剩下的就是定义资源文件,也就是换换名字或给按钮连接个图片。和前面的workbench一样工具条名字在“NewAddin.CATNIS”中进行定义:/ H7 q5 ?% ]1 o  A# o: S$ \* C
PartBenchTlb.Title=”测试工具条”;8 ~3 R1 H( Y& v. p
在NewAddin.CATRsc定义图片。
9 m  O8 r6 P4 ~- O, |" H/ MNewAddin.point.Icon.Normal = “I_CAAPoint” ;(图片一般放在cnext/resource graphic\ Icon\Normal文件加下 , NewAddin.CATRsc文件可能不会自动生成,你可以在相应的文件加下新建一个问本文档,把后缀改成CATRsc再在VC里刷新你的工程就有了)。
7 Q# k, I: L  W8 ?1 P5 w" {$ O

% [% Z$ ~8 T/ J& z, i; X8 M
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了