CAA二次开发:在Part中创建一个basic command

前言

本文是基于初步掌握vs进行caa二次开发而写,并且使用vs2008,2012都有写。故没有具体的图文,只有简短的文字,给自己新创建时提供便利。


正文

以下内容以2008为例子,但2012类似,并且有加以说明

新建 workspace

新建 frame TestFrm

新建 module TestMdu

载入Api

加到解决方案

//vs2012要编辑idcard Edit ID Card 添加System public

新建 component TestAddin

TIE MODE选择 CATIPrtCfgAddin

//  CATIAssemblyAddin/CATIPRDWokshopAddin是装配

新建commend TestCmd

style选择basic command

//  vs2012是3DS Command

TestAddin.Cpp添加

//  如果文件名不一样,修改TestAddin,TestMdu,TestCmd

#include "CATCmdContainer.h"
#include "CATCreateWorkshop.h"     // 包含管理Access 的一系列宏
#include "CATCommandHeader.h" 
MacDeclareHeader(TestAddinHdr);

void TestAddin::CreateCommands()//**此处修改TestAddin,TestMdu,TestCmd
{
    new TestAddinHdr ( "Generate",// command header标识符(也用于定义显示的文本或图标等资源)
        "TestMdu",                  // 所关联command的代码在哪个模块/库/DLL里,module名字
        "TestCmd",                     // 所关联的command名(即类名)
        (void *)NULL);                 // 可选的传递参数(传递给command,确定不同的操作)
}
CATCmdContainer* TestAddin::CreateToolbars()//**此处修改TestAddin
{
    NewAccess( CATCmdContainer, pWorkblankTlb, AddinToolbar );//AddinToolbar为窗口名字
    //    参数:工具栏是CATCmdContainer的实例
    //    参数:指向该工具栏的句柄指针
    //    参数:该工具栏的标识符
    //    2和自己命名,保证标识符唯一
NewAccess( CATCmdStarter, pWorkblankStr, WorkblankStr );    
// 按钮是CATCmdStarter的实例,后两个同上
    SetAccessCommand( pWorkblankStr, "Generate" );   // 关联(按钮句柄,Command Header标识符)
SetAccessChild( pWorkblankTlb , pWorkblankStr  );        
// 设置父子关系(父句柄,子句柄)
    //    若在该工具栏上再添加一个按钮,则第三行改为设置邻接关系:
    //    SetAccessNext (WorkblankStr, 按钮句柄);
    AddToolbarView ( pWorkblankTlb , 1 , Right ); 
    //    参数:工具栏句柄
    //    参数:工具栏可见,-1(默认) 不可见
    //    参数:工具栏固定在右边
    return pWorkblankTlb;
}

TestAddin.h添加

class CATCmdContainer;
//vs2012还要添加下行
#include "CATIPrtCfgAddin.h"

public类中添加

void CreateCommands();
	CATCmdContainer * CreateToolbars();

mk添加

CATApplicationFrame
//vs2012多添加
CATPartInterfaces

identity添加

AddPrereqComponent("ApplicationFrame",Protected);
//vs2012多添加
PartInterfaces

Cmd.cpp中Activate函数添加

MessageBox(NULL,L"Hello World!",L"成功",MB_OK | MB_SYSTEMMODAL);
	RequestDelayedDestruction();
 
 //vs2012多添加
 #include "CATCreateExternalObject.h"
CATCreateClass(TestCmd);

设置属性

mkmk

update runtime view

开始执行


备注

添加到装配设计如下修改

Addin.h中添加:
    #include "CATIAssyWorkBenchAddin.h"//添加到装配设计

.cpp中添加:
    #include "TIE_CATIAssyWorkBenchAddin.h"
    TIE_CATIAssyWorkBenchAddin(TestAddin);
.dico中添加:
    TestAddin CATIAssyWorkBenchAddin libTestMdu
idcard中添加:
    <prerequisite name="CATAssemblyInterfaces" access="Public" />
mk中添加:
    CATWkAssyInterface 

vs2008,vs2012好像这两个都是添加到装配设计(有待考察):

#include "CATIPRDWORKshopAddin.h"

#include "TIE_CATIPRDWorkshopAddin.h"

TIE_CATIPRDWorkshopAddin(TestAddin);

TestAddin CATIPRDWORKshopAddin libTestAddinMdu

prerequisite name="ProductStructureUI" access="Public" />

CATPrsWksPRDWorkshop

修改标识符

窗口名 AddinToolbar

按钮名 Generate

本文到此结束。

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值