CAA二次开发:在Part中创建一个basic command_"#include \"catcreateworkshop.h"-程序员宅基地

技术标签: CAA二次开发  

前言

本文是基于初步掌握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

本文到此结束。

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qq_40494914/article/details/119113645

智能推荐

组合数学_将2个红球,1个蓝球,1个白球放到10个编号不同的盒子中去,每个盒子最多放一个球。有-程序员宅基地

文章浏览阅读1.4k次。组合数学组合数学一直都是我们这些菜鸡颓废的地方,很多菜鸡往往受不住组合学的寂寞而坠落到人生深谷(本菜鸡就是一个)好了,扯淡解释对于组合数学,我们并不陌生,从小学六年级的奥数书上就早早地接触了,然后在预习高中数学的时候也接触了一下组合数学,是数学的一个分支,包括很多的原理,抽屉原理,加法原理,乘法原理,容斥原理他们为解决问题提供了思想方法1、抽屉原理(鸽巢原理)抽屉原理可以描述为 :把n+1个东西放入n个抽屉,至少有一个抽屉放了两个或两个以上的东西或者换一个角度说,把n-1件东西放入n个抽屉,_将2个红球,1个蓝球,1个白球放到10个编号不同的盒子中去,每个盒子最多放一个球。有

C语言学习笔记-二维数组之五子棋_棋盘数组=0-程序员宅基地

文章浏览阅读3.8k次。五子棋简单实现_棋盘数组=0

16进制QString和unsigned char数组互相转换_qvector<unsigned char>-程序员宅基地

文章浏览阅读5.5k次。17位16进制mac字符串转为6位字节数组demo: unsigned char* byteArr = hexStringToByteArray(QString("A1-B2-C3-D4-E5-F6")).data();QVector<unsigned char> hexStringToByteArray(const QString& strMac){ Q..._qvector

从零开始的Java笔记01_class member{private string name;//名字 public strin-程序员宅基地

文章浏览阅读199次。设置环境变量右键我的电脑→属性→高级系统设置→在下侧的系统变量中新建:变量值填自己的jdk路径就好。双击打开Path变量,点击编辑文本,在最前方加入“ %JAVA_HOME%\bin; ”(不过好像和老师讲得不一样……)使用IDEA若只新建com.day01.demo01, 在IDEA的工程列表里只会显示“一个包” (名为com.day01.demo01)如果再新建..._class member{private string name;//名字 public string getname(){ return

Unity Scroll View简单介绍和使用-程序员宅基地

文章浏览阅读6.5k次,点赞13次,收藏33次。Unity Scroll View简单介绍_unity scroll view

Hadoop_hadoop生态都是开源-程序员宅基地

文章浏览阅读8.6k次,点赞15次,收藏102次。HADOOP介绍1、 什么是HADOOP(1)HADOOP是apache旗下的一套开源软件平台(2)HADOOP提供的功能:利用服务器集群,根据用户的自定义业务逻辑,对海量数据进行分布式处理(3)HADOOP的核心组件有: HDFS(分布式文件系统) YARN(运算资源调度系统) MAPREDUCE(分布式运算编程框架)(4)广义上来说,HADOOP通常是指一个更广..._hadoop生态都是开源

随便推点

图片扫描后的复制使用的好办法_奔图扫描后可以复制-程序员宅基地

文章浏览阅读910次。1、打开最新版qq2、复制图片在qq中3、提取图片中的信息4、复制内容到想要用的地方_奔图扫描后可以复制

shell是什么以及第一个shell脚本_大部分情况下shell都会去调用内核暴露出来的接口,这就是在使用内核,其途径是(-程序员宅基地

文章浏览阅读292次。1. shell是什么(1)现在我们使用的操作系统(Windows、Mac OS、Android、iOS 等)都是带图形界面的,简单直观,容易上手,对专业用户(程序员、网管等)和普通用户(家庭主妇、老年人等)都非常适用;计算机的普及离不开图形界面。然而在计算机的早期并没有图形界面,我们只能通过一个一个地命令来控制计算机,这些命令有成百上千之多,且不说记住这些命令非常困难,每天面对没有任何色彩的..._大部分情况下shell都会去调用内核暴露出来的接口,这就是在使用内核,其途径是(

js java变量,JSP:在Javascript中使用java变量-程序员宅基地

文章浏览阅读211次。I have a JSP page called index.jsp. I have a Java variable called totalCount inside this page :Now I want to use this variable in Javascript section to generate a chart:How can I pass this Java variab..._jsp中的入script如何使用本页面中的java变量

网络工程基础- -mac地址以及端口安全_mac地址绑定和端口安全使能是一个东西吗-程序员宅基地

文章浏览阅读1.2k次。网络工程基础-mac地址前言MAC地址(英语:Media Access Control Address),直译为媒体存取控制位址,也称为局域网地址(LAN Address)物理地址(Physical Address),它是一个用来确认网络设备位置的位址。是设备出厂时烧录在主板或者网卡上的。一般不能手动 更改,可以用软件重新烧录;本文章总结了MAC地址的一些知识,如果错误留言改正提示:以下是本篇文章正文内容,下面案例可供参考一、MAC地址- - - 基本了解1.1 MAC地址;也称硬件地址,用于_mac地址绑定和端口安全使能是一个东西吗

第一部分 利用opencv基于hsv颜色的目标提取效果和python代码_用什么颜色作为目标提取工具-程序员宅基地

文章浏览阅读2.1k次,点赞6次,收藏21次。因为做毕设,想找个地方记录一下毕设当初写的东西。这是大二比赛的时候学弟给的滑动条的思路。第一部分,HSV模型进行颜色提取先放效果图:图1 左右摄像头采集到的乒乓球图像图 2 HSV模型颜色提取器图 2 HSV模型提取的效果图提取思路HSV总共有三个通道,用数组表示为,[ h_min, s_min, v_min ] , [ h_max, s_max, v_max ] 。实际操作中用滑动条来逼近临界值,用二值化图像窗口直观去判断效果是否合适。使用平台jetracer pro kit 智_用什么颜色作为目标提取工具

最大流问题matlab,matlab、lingo程序代码20-最大流问题-程序员宅基地

文章浏览阅读1.2k次。最大流问题例17用Ford-Fulkerson算法计算如图6网络中的最大流,每条弧上的两个数字分别表示容量和当前流量。图6最大流问题解编写程序如下:clc,clearu(1,2)=1;u(1,3)=1;u(1,4)=2;u(2,3)=1;u(2,5)=2;u(3,5)=1;u(4,3)=3;u(4,5)=3;f(1,2)=1;f(1,3)=0;f(1,4)=1;f(2,3)=0;f(2,5)=1;..._求解最大流的程序