PLM之家精品课程培训

PLM之家精品课程培训

联系电话:18301858168   |   QQ咨询:939801026
NX二次开发培训

NX二次开发培训

UFUN/NXOpen C++和实战案例

适合初级入门或想深入了解二次开发的工程师,本培训结合ufun,NXOpen C++,大量的实例及官方内部的开发技术。
公众号二维码

关注公众号

点击扫描二维码免费在线高清教程

课程详情
Catia二次开发培训

Catia二次开发培训

市场需求大,掌握核心技术前景广阔

Catia二次开发的市场需求大,人才稀缺。掌握开发技能潜力巨大,随着经验积累将在汽车、航空等领域有所作为。
B站二维码

在线原创B站视频

点击关注工业软件传道士主页

课程详情
Teamcenter培训

Teamcenter培训

全方位培训,从基础应用到高级开发全覆盖

涵盖用户应用基础培训、管理员基础培训、管理员高级培训及二次开发培训等全方位内容,由多年经验讲师打造。
QQ群二维码

加入同行交流

点击扫描二维码加入QQ群

课程详情
×

PLM之家plmhome公众号

课程涵盖: PLM之家所有原创视频

×

关注B站视频

所有高清视频一览无余,全部在线播放学习

×

加入PLM之家QQ群

同行交流,疑问解答,更多互助

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

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

[复制链接]

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

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

admin 楼主

2017-1-16 17:14:52

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

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

x
Catia CAA 二次开发加入菜单工具条最简单的入门教程, O. G. {9 T4 W8 ^: p1 D
( j) X% @" j' P7 x3 L/ c1 i
建立了一个空的Addin。在yourframe.dico文件中可以看到这个Addin的声明:0 q  T5 x- A- h3 h1 @" d
NewAddin        CATIPrtWksAddin        libPartDesignAddin3 h1 L8 J6 D2 k$ j2 I0 _6 q
但是,要创建一个工具条,我们还需要在这个类:NewAddin中添加一些函数。0 A- v1 Z* Y% B7 n
在NewAddin类中添加两个Public函数声明:( F" J! |5 s$ W4 Y
           void CreateCommands();
  a. m2 L" Q- h3 l. a  NCATCmdContainer * CreateToolbars();4 X; K; l: s$ _% A" ]; p
在NewAddin.cpp中添加宏定义:' Q' v( G% I- W" e) k( G
       #include "CATCommandHeader.h"        % k' ~/ _0 @2 a+ s; [
MacDeclareHeader(PartCmdHeader);4 U6 m/ X$ L! A% j
这两个函数及宏都可以按ctrl+F1查到, CreateCommands里面的代码只是用 MacDeclareHeader生成的PartCmdHeader定义命令的header(不知道怎么翻译,就是工具条或菜单里面可以看到的执行命令的按钮了,这个命令是连接界面命令和实现代码的桥梁。)如:       
# R1 m/ G. i0 m9 N2 u* O! a, [/ x7 Wnew PartCmdHeader(“point”,“CmdModule”,“TestCmd”,(void *)NULL);
, a* @  B: b, L! Onew PartCmdHeader("line","CmdModule","LinCmd",(void *)NULL);% b! E  I1 {4 {& z9 e- @9 G2 C6 y& |
第一个参数是按钮的名字,第二、三个代表按钮执行的命令所在的module和命令的名字,参数四缺省就行了。
7 i" z0 ~% s) j; T. q) [( h; t
% A% L$ C9 Z" {, J% j6 e# P+ M- \ CreateToolbars里面就是要建的工具条和菜单的主要内容:& f+ g( x. @! I
        NewAccess(CATCmdContainer,pPartBenchTlb,PartBenchTlb);
. K% y2 z) }4 L& W: \             NewAccess(CATCmdStarter,pPointCmd,PointCmd);
$ l7 U7 e( D& P) G& O5 Q& |3 P         SetAccessCommand(pPointCmd,"point");
3 Q" ?1 J8 U  h+ @" G         SetAccessChild(pPartBenchTlb,pPointCmd);/ v* b5 o2 Y( e
                 NewAccess(CATCmdStarter,pLineCmd,LineCmd);, I4 F' Y# d* S# Q
         SetAccessCommand(pLineCmd,"line");
! |0 l; e, m2 }. w$ |) Q/ @9 d         SetAccessNext(pPointCmd,pLineCmd);
8 o8 h4 L9 K. r这三个函数都可以查到, 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.% j4 S5 }. [+ ?) N; q

9 ]1 b' c  R, G6 ]3 D- R) y$ I2 e' d, d6 @5 W2 m

% }- Z2 N& \7 f2 F% ^NewAccess, SetAccessCommand, SetAccessChild, SetAccessNext等几个命令的使用。其具体含义可以参看API文档的说明。( SetAccessCommand 就是将starter与上面的PartCmdHeader 建立的东西连接了,注意参数“line” )其他的顾名就可思义。' L( A' `9 n' Z

2 {# g" ]8 h) |! J  \( R3 ]、此时编译,发生几个连接错误。主要是CATCmdContainer类型及Newaccess的定义的头文件及其Module的添加。在.h文件中加上:#include "CATCmdContainer.h"4 j/ G: m) {" m% C& K5 x
在.cpp中加入:#include "CATCmdContainer.h"
& o. a( c1 x! e0 e9 {#include "CATCreateWorkshop.h"  r$ l% T5 [# I
在.mk文件中加入:WIZARD_LINK_MODULES =  \( k1 O* m4 A, v& Q
JS0FM JS0GROUP PrtWorkshop MechanicalModelerUIUUID \
; s; @6 h% r% l7 ~4 H$ MCATApplicationFrame7 l, Q3 W; e- a: F  `6 j- q# ~9 T
# END WIZARD EDITION ZONE
# |+ u$ M1 {; ^, ~. G" R$ Z: F2 P: FLINK_WITH = $(WIZARD_LINK_MODULES)  \
; |! ?2 f  |/ B7 y, v. V1 ?          CATApplicationFrame
6 M$ B2 M9 d6 _- ?$ D( @在Identitycard.h中加入:
" b- }# N; n+ m1 J1 {; JAddPrereqComponent("ConstraintModelerUI",Protected);
' R! ~7 g7 }2 V/ T- [$ j+ d注意:每次换行时,都要加一斜线用来继续执行下面的module.- o6 j1 p8 U; b9 s% h
6 ^% b1 Y0 B: u& _' C3 h; }
到此addin就做成了。剩下的就是定义资源文件,也就是换换名字或给按钮连接个图片。和前面的workbench一样工具条名字在“NewAddin.CATNIS”中进行定义:/ N" m8 H9 z, j  D: T
PartBenchTlb.Title=”测试工具条”;
8 C, F8 f* E  X& ?# Q在NewAddin.CATRsc定义图片。
' U0 x8 K" A& w: jNewAddin.point.Icon.Normal = “I_CAAPoint” ;(图片一般放在cnext/resource graphic\ Icon\Normal文件加下 , NewAddin.CATRsc文件可能不会自动生成,你可以在相应的文件加下新建一个问本文档,把后缀改成CATRsc再在VC里刷新你的工程就有了)。
- x4 C, m, I( N
6 o, r9 U) t  Q; }) I$ J
+ k' b$ F' l- Y: a
上海点团信息科技有限公司,承接UG NX,CATIA,CREO,Solidworks 等CAx软件,Teamcenter,3D Experience等PLM软件,工业4.0数字化软件的实施\二次开发\培训相关业务,详情QQ 939801026 Tel 18301858168 网址 www.diantuankj.com/ doTeam.tech
回复

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 注册

返回列表 本版积分规则

  • 发布新帖

  • 在线客服

  • 微信

  • 客户端

  • 返回顶部

  • x
    温馨提示

    本网站(plmhome.com)为PLM之家工业软件学习官网站

    展示的视频材料全部免费,需要高清和特殊技术支持请联系 QQ: 939801026

    PLM之家NX CAM二次开发专题模块培训报名开始啦

    我知道了