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

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

[复制链接]

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

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

admin 楼主

2017-1-16 17:14:52

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

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

x
Catia CAA 二次开发加入菜单工具条最简单的入门教程
; `" s' N4 I, m# j& H+ X8 D) Z; j) a# ]6 [
建立了一个空的Addin。在yourframe.dico文件中可以看到这个Addin的声明:  Z: ]$ U1 ]4 h) C& V6 c" L- t
NewAddin        CATIPrtWksAddin        libPartDesignAddin
- |- U/ s% l$ A/ K. N  ?0 F9 B但是,要创建一个工具条,我们还需要在这个类:NewAddin中添加一些函数。% R( O. Q/ Z2 d# b- c9 O
在NewAddin类中添加两个Public函数声明:5 |; W" D: ?$ G1 U1 q; {: y
           void CreateCommands();
1 H% H# u3 t7 L2 E' F  p' uCATCmdContainer * CreateToolbars();
6 l" V) m! Y! w# Z在NewAddin.cpp中添加宏定义:: _5 c! j, W) ~$ b' {6 r+ O( h
       #include "CATCommandHeader.h"        " U, n. Y2 m. R8 @
MacDeclareHeader(PartCmdHeader);# h0 D) e" `2 n% k- M  s1 n4 K
这两个函数及宏都可以按ctrl+F1查到, CreateCommands里面的代码只是用 MacDeclareHeader生成的PartCmdHeader定义命令的header(不知道怎么翻译,就是工具条或菜单里面可以看到的执行命令的按钮了,这个命令是连接界面命令和实现代码的桥梁。)如:       
/ l4 Q# }9 h) dnew PartCmdHeader(“point”,“CmdModule”,“TestCmd”,(void *)NULL);
7 {& g) U! l/ ]0 E$ O1 Y+ @new PartCmdHeader("line","CmdModule","LinCmd",(void *)NULL);
6 u2 \$ m+ E* x& x4 s第一个参数是按钮的名字,第二、三个代表按钮执行的命令所在的module和命令的名字,参数四缺省就行了。" f8 _' Q0 ^, `2 m3 @4 t
  |8 C  f9 c! P2 l; f7 v
CreateToolbars里面就是要建的工具条和菜单的主要内容:; ~& {# O: c5 @" m
        NewAccess(CATCmdContainer,pPartBenchTlb,PartBenchTlb);. B1 a( W* [  v4 Y/ h
             NewAccess(CATCmdStarter,pPointCmd,PointCmd);4 ?0 r: E7 ]1 g% q- k' Z
         SetAccessCommand(pPointCmd,"point");
  X8 ^9 f/ `4 d. h         SetAccessChild(pPartBenchTlb,pPointCmd);, ~1 z# `- t% K7 m' P
                 NewAccess(CATCmdStarter,pLineCmd,LineCmd);" N3 C) l! Z# u/ V& s: h1 `
         SetAccessCommand(pLineCmd,"line");: R* k5 T- z1 ~# g% M4 u1 ?
         SetAccessNext(pPointCmd,pLineCmd);
4 {1 ^9 W+ M0 z0 }+ n- V- b$ Z. G这三个函数都可以查到, 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.
3 [# \  O/ e: ^- [5 N; o( @% q- D" k2 e

! G$ u; O$ }/ L* c" C
- O1 N) }' Z9 B! F- D, RNewAccess, SetAccessCommand, SetAccessChild, SetAccessNext等几个命令的使用。其具体含义可以参看API文档的说明。( SetAccessCommand 就是将starter与上面的PartCmdHeader 建立的东西连接了,注意参数“line” )其他的顾名就可思义。. r$ X. y% `0 s" I
* n! J7 K5 \+ j- p7 {* Z) s
、此时编译,发生几个连接错误。主要是CATCmdContainer类型及Newaccess的定义的头文件及其Module的添加。在.h文件中加上:#include "CATCmdContainer.h"
& d, E6 {6 A3 d9 K$ N在.cpp中加入:#include "CATCmdContainer.h"
" P7 W" B' u% y#include "CATCreateWorkshop.h"0 Y. K/ W1 \* P4 v  b
在.mk文件中加入:WIZARD_LINK_MODULES =  \
3 t$ O0 |4 _* @JS0FM JS0GROUP PrtWorkshop MechanicalModelerUIUUID \
6 v# L: O- X, k3 YCATApplicationFrame3 `5 v. ~% S$ [2 L. A
# END WIZARD EDITION ZONE . P, {- T0 d( _" S# V3 Y. a
LINK_WITH = $(WIZARD_LINK_MODULES)  \
+ a' R! @9 P- Q          CATApplicationFrame 1 F6 E# l. G# P1 V
在Identitycard.h中加入:
, K: H' |3 W" ~- K6 EAddPrereqComponent("ConstraintModelerUI",Protected);
# [( C3 a! Q. [* i- ~# V' R注意:每次换行时,都要加一斜线用来继续执行下面的module.2 Y- C& {( D, A0 H+ r

9 w; M& i- o9 `# S% _: v1 d到此addin就做成了。剩下的就是定义资源文件,也就是换换名字或给按钮连接个图片。和前面的workbench一样工具条名字在“NewAddin.CATNIS”中进行定义:
, c% Q* I; N8 ePartBenchTlb.Title=”测试工具条”;
% ^8 [) _3 M2 ~在NewAddin.CATRsc定义图片。
; q+ F- k( {& j( N! l+ j* KNewAddin.point.Icon.Normal = “I_CAAPoint” ;(图片一般放在cnext/resource graphic\ Icon\Normal文件加下 , NewAddin.CATRsc文件可能不会自动生成,你可以在相应的文件加下新建一个问本文档,把后缀改成CATRsc再在VC里刷新你的工程就有了)。% r/ W# |7 c8 C# t: @" E! B" R

+ H2 x8 O7 l; M" K" a+ C$ S
: C  T8 g' w4 z( b; Y
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了