CATIACAA二次开发详细教程

合集下载

CATIA CAA 二次开发 第二讲:添加Workbench

CATIA CAA 二次开发 第二讲:添加Workbench

CATIA CAA 二次开发第二讲:添加Workbench【机知网】1.前言这一部分很重要请注意认真看,说它重要是因为在后面程序的调试中可能会出现错误,请你务必在安装开发vc环境的时候注意,在安装vc的时候记得有个地方自己选,最好你都装了,如果你没有装也没有关系,到时候从vc的安装文件里面考出来也可以,就是关于RADE中会用到的lib库,在vc中的目录为vc98/mfc/lib目录下,如果你调试出现问题,比如error没有找到mfc42u.lib 或者别的你就要从安装盘里面把所有的lib里面的文件考到你的vc对应安装目录下。

1.2进入正题1.新建工作空间你按照我以前的帖子安装完开发环境在vc下面就有了RADE的菜单找个标签页你可以选择下面的复选框,以后新建工程的时候就不会弹出了,然后选择ok你可以先建立你的开发目录然后选择Workspace Directory的时候指定目录,with就选择mkmk,tool level选择你的版本。

点击next选择创建一个新的框架frame,然后finish,弹出new framework对话框,输入你的frame名字,下面的选择如图所示,fram ework t’ype-implementation,framework function-development,然后ok弹出下面的配置对话框然后ok,dos窗口闪动几下就可以了1.创建module有了工作空间和框架下面就是添加module了,好像你做的所有开发都在module里面(我也是刚入门,很多东西还不懂^_^)Project目录下面选择new module弹出下面的对话框输入你的module名字,module information选择shared object,也就是交互式(caa的开发分为交互式和批处理,听似水年华这么跟我讲的^_^),然后ok。

弹出下面的产生文件对话框然后点击ok,你的module就添加到workspace里面了,在vc的fileview 窗口如下所示:1.载入必须的API函数选择菜单如下所示:弹出如下的对话框Mode选择第一项,然后点击add,添加函数所在目录,选到你的catia目录下面的B14,一定要选对。

CATIA CAA 二次开发详细教程 (4):创建自定义特征

CATIA CAA 二次开发详细教程 (4):创建自定义特征

CATIA CAA二次开发第四讲:创建自定义特征本例是使用CAA C++开发方式,建立一个自定义的用户特征,实现的功能是使一个任意曲面可以根据给定曲面的形状来生成和目标形状相同的形状,类似于生活中缝补的概念,其具体的开发步骤如下:(1)创建一个库(catalog)来定义特征的StartUp。

用CATfctEditorAssistant-new-catalog命令创建catalog,通过.osm文件定义catalog里StartUp数据结构。

对StartUp的定义要根据自定义特征的性质,选用合适的container,在feature定义中,要对对自定义特征的输入输出和该特征的中性数据给予明确的定义。

(2)创建一个扩展接口来访问特征的属性。

通常在该接口中定义设置和获取自定义特征属性的方法。

在本文中接口的作用是取得被缝合的表面和支撑面。

(3)创建一个可以实例化该特征的工厂(Factory)。

该工厂的作用是打开创建的catalog获取startup,然后实例化自定义特征并设置它的属性。

本文中为创建缝合面,然后打开catalog 并获取startup,实例化特征设置其属性。

(4)创建工具条Toolbar。

使用CA TCommandHeader类创建命令头,最简单的方法就是使用宏命令:#include"CATCommandHeader.h"、MacDeclareHeade(rMyHea-der)。

CommandHeader添加到工具条的Addin函数中,createco-mmand(s)用来实例化一个新的命令,createtoolbars 用来确定访问顺序,SetAccessCommand的作用是将命令头与按钮相连,SetAccessChild以及SetAccessNext这两个宏则可以顺序连接到入口。

(5)创建对话框Panal。

在Bulid函数里添加设置对话框各按钮相应的功能函数,并为各按钮设置默认的初始值。

CATIA软件二次开发实践指南

CATIA软件二次开发实践指南

CATIA软件二次开发实践指南CATIA是由法国达索系统公司(Dassault Systèmes)开发的一款世界领先的三维设计软件。

它广泛用于航空航天、汽车制造、工业设计等领域。

为了满足用户特定的定制需求,CATIA软件支持二次开发,这使得用户可以根据自身需要对CATIA进行功能扩展和定制。

本篇文章将为读者介绍如何进行CATIA软件的二次开发,并提供一些实用的开发实践指南。

一、二次开发环境搭建在开始CATIA软件的二次开发之前,我们需要搭建相应的开发环境。

首先,确保已安装CATIA软件,并具备基本的CATIA使用经验。

其次,要安装CATIA官方提供的开发工具包CATIA Customization Tools(CCT)。

CCT是一套特殊的插件和工具,可以帮助开发者进行CATIA的定制和开发。

安装完成后,启动CATIA,选择“工具-集中管理-定制工具”命令,确保CCT已成功安装并可用。

二、二次开发的基本概念在进行CATIA二次开发之前,了解一些基本概念是很重要的。

CATIA软件基于面向对象的编程思想,开发者需要熟悉CATIA的对象模型和相关API接口。

对象模型描述了CATIA软件中各个元素之间的关系和属性,开发者通过调用API接口对CATIA进行操作和扩展。

例如,我们可以通过API接口创建、编辑、删除CATIA中的零件、装配、图纸等对象。

三、CATIA二次开发的实践指南1. 熟悉CATIA对象模型:详细了解CATIA对象模型可以帮助开发者深入理解CATIA软件的内部结构和机制。

CATIA的对象模型按照层次结构组织,从最顶层的“CATIA.Application”到最底层的具体对象,开发者可以根据自身需求在对象模型中定位到所需的对象。

2. 学习API文档和示例:CATIA提供了详细的API文档,其中包含了各种API接口的详细说明和使用示例。

开发者可以通过阅读API文档来学习如何调用CATIA提供的接口和方法。

CATIA二次开发CAA培训课件

CATIA二次开发CAA培训课件
输入名称
类型选择
第一章 CAA二次开发一般步骤
1.程序的建立
1.1 工程的建立
确定Workspace 的创建。
第一章 CAA二次开发一般步骤
1.程序的建立
1.1 工程的建立
确定后VC文件视图如 下:
此时生成了一个带有一个Framework 的Workspace。CAA的开发提供了两 种模式:批处理模式(Batch Mode) 和交互模式(Interactive Mode)。 我们开发主要用到的是交互模式。在 此模式下,可以创建两种交互界面: Workshop(Workbench)和Addin。 前者是创建一个新的模块,在这个模 块中除了标准的命令,其余均由用户 开发。后者指在已经存在的 Workbench中插入新的工具条和命令。
第一个参数是按钮的名字,第二、三个代表按钮执行的命令所在 的module和命令的名字,参数四缺省。
第一章 CAA二次开发一般步骤
3.创建Addin
(3)创建工具条和菜单,添加两个函数
CATCmdContainer * MyAddin::CreateToolbars() { NewAccess(CATCmdContainer,pPartBenchTlb,PartBenchTlb);
2.添加Workbench
2.4 定义资源
在文件:MyWkb.CATNIS中,可以定义此 Workbench以及其工具条、菜单的所有名 字(Title),定义格式为: MyWkb.Title="MyWkb title";
第一章 CAA二次开发一般步骤
2.添加Workbench
2.4 定义资源
第一章 CAA二次开发一般步骤
3.创建Addin

CATIA CAA 二次开发 详细教程(5)添加一个点

CATIA CAA 二次开发 详细教程(5)添加一个点

CATIA CAA 二次开发详细教程(5)添加一个点在创建任何几何对象之前,必须在激活的函数命令中添加以下代码,:CATFrmEditor* pEditor = CATFrmEditor::GetCurrentEditor();if(pEditor == NULL){printf("error getting the FRM editor");}CATDocument *pDoc = pEditor->GetDocument();CATIContainerOfDocument_var spConODocs = pDoc;CATIContainer* pSpecContainer = NULL;HRESULT hr = spConODocs->GetSpecContainer(pSpecContainer);if(spConODocs == NULL_var){printf("error getting the container of documents");}以上代码的主要功能是获取editor, the document and the container。

CATIGSMFactory_var spGSMFactory = NULL_var;CATIPrtFactory_var spPrtFactory = NULL_var;CATICkeParmFactory_var spParmFactory = NULL_var;spGSMFactory = pSpecContainer;spPrtFactory = pSpecContainer;spParmFactory = pSpecContainer;以上代码设置工厂,在这基础上你才可以造型,GSMFactory用于创建底层的几何对象比如点、线等。

PrtFactory包含创建孔特征、拉伸特征实体等函数。

CATIA CAA关于workbench和adding的二次开发

CATIA CAA关于workbench和adding的二次开发

本文介绍的实例将在MechenicalDesign(机械设计)中插入一个名为“测试工作台”的Workbench,内容非常基础,每个步骤尽可能描述的非常详细,供初学者参考。

具体步骤如下:1. 准备工作参照前面的步骤,创建一个解决方案和一个Framework,并将解决方案与CATIA的系统接口建立连接。

该过程参见《CATIA二次开发CAA培训课件》2. 新建Workbench3.1 选择“文件->Add CAAV5 Item->CATIA Resources->CATIA Pattern”命令:在弹出对话框中选择“Workshop”并点击OK按钮:3.2 在新弹出的对话框中选择对象的类型为Workbench,在Work Object Name栏输入Workbench的名称。

然后点击Associated Workshop输入框后面的“…”按钮,这里选择PRDWorkshop,即为Product空间。

在新创建的Workbench中,会包含Product空间的一些基本标准命令,如插入产品等。

如果选择Part空间,则会包含Part空间的一些基本命令。

设置完成后点击OK,最终状态如下:3.3 点击Next:3.4 该设置界面保持默认即可,点击Next,进入参数设置界面:也保持默认,点击Finish,在最后弹出的信息确认对话框中直接点击OK。

3.5 选择“项目->Select CAA V5 Projects …”:在弹出的窗口中将刚才新建立的TestWb模块载入到开发环境中:将MyTestWbk.m设置成当前启动项目:现在的目录结构如下图所示:Workbench的资源文件保存在下图所示的位置:3. 编译(mkmk)工程点击“生成->mkmk ”,编译新建的Module。

4. 运行CNEXT查看效果点击Tools->Open Runtime Window ,打开命令框。

输入“cnext”打开CATIA。

CATIA CAA 二次开发程序的发布甄选.

CATIA CAA 二次开发程序的发布甄选.

CATIA CAA 二次开发程序的发布#.CATIA CAA 二次开发程序的发布1.发布条件:已安装了CATIA,版本不能低于开发使用的CAA版本。

CAA代码成果物“intel_a”文件中的所有文件。

其他版本的CATIA与此类似。

1.发布方法:2.将“intel_a”文件存放在要发布机器上,存放“intel_a”文件的路径最好不要有中文字符和空格。

(例:E:\VCINewFromExisting\intel_a)3.点击”开始” –> ”所有程序” –> “CATIA P3” –> “Tools” –>”Environment Editor V5R19”1.点击“确定”。

1.选择”Environment” –> “New”1.“Name” 栏为将要创建的桌面快捷方式的名称;在”Install Path” 栏中,CATIA的安装路径后输入”; E:\VCINewFromExisting\intel_a”,这是要发布的intel_a的存放路径;其他如图所选,采取默认设置。

完成后点击”OK”。

1.至此发布完成,在桌面上会生成一个名为”NewFromExisting”的CATIA类型图标。

双击该图标,会启动CATIA,用户便可使用CATIA原所有功能和新发布的功能。

1.与原CATIA图标集成发布方法:设:Catia的工作目录是 D:\DS\B19\intel_a;已开发插件的工作目录是D:\MyAddin\intel_a;将D:\MyAddin\intel_a下这些文件复制到D:\DS\B19\intel_a对应的位置,即可在运行Catia时候自动加载插件:code \ bin \ *.dll;\ code \dictionary \ *.dico;\ code \ productIC \ *.script;\ code \ productIC \ *.xml;\ resources \ graphic \ icons \ normal \ *.bmp;\ resources \ msgcatalog \ *.CATNls;\ resources \ msgcatalog \ *.CATRsc;感谢您使用本店文档您的满意是我们永恒的追求!(本句可删)------------------------------------------------------------------------------------------------------------。

CATIA CAA 二次开发详细教程 (2)-添加Workbench

CATIA CAA 二次开发详细教程 (2)-添加Workbench

CATIA CAA 二次开发第二讲:添加Workbench这一部分很重要请注意认真看,说它重要是因为在后面程序的调试中可能会出现错误,请你务必在安装开发vc环境的时候注意,在安装vc的时候记得有个地方自己选,最好你都装了,如果你没有装也没有关系,到时候从vc的安装文件里面考出来也可以,就是关于RA DE中会用到的lib库,在vc中的目录为vc98/mfc/lib目录下,如果你调试出现问题,比如error没有找到mfc42u.lib或者别的你就要从安装盘里面把所有的lib里面的文件考到你的vc对应安装目录下。

1.2进入正题新建工作空间你按照我以前的帖子安装完开发环境在vc下面就有了RADE的菜单找个标签页你可以选择下面的复选框,以后新建工程的时候就不会弹出了,然后选择ok你可以先建立你的开发目录然后选择Workspace Directory的时候指定目录,with就选择m kmk,tool level选择你的版本。

点击next选择创建一个新的框架frame,然后finish,弹出new framework对话框,输入你的frame 名字,下面的选择如图所示,framework t’ype-implementation,framework function -development,然后ok弹出下面的配置对话框然后ok,dos窗口闪动几下就可以了1.创建module有了工作空间和框架下面就是添加module了,好像你做的所有开发都在module里面(我也是刚入门,很多东西还不懂^_^)Project目录下面选择new module弹出下面的对话框输入你的module名字,module information选择shared object,也就是交互式(caa的开发分为交互式和批处理,听似水年华这么跟我讲的^_^),然后ok。

弹出下面的产生文件对话框然后点击ok,你的module就添加到workspace里面了,在vc的fileview窗口如下所示:1.载入必须的API函数选择菜单如下所示:弹出如下的对话框Mode选择第一项,然后点击add,添加函数所在目录,选到你的catia目录下面的B14,一定要选对。

CATIA CAA 二次开发详细教程 (3):添加Addin(菜单、对话框)

CATIA CAA 二次开发详细教程 (3):添加Addin(菜单、对话框)

CATIA CAA 二次开发第三讲:添加Addin(菜单、对话框)下面简单介绍addin的制作:所谓Addin,是在系统已有的Workbench中插入新的工具条或者菜单。

下面的例子,我们来在PartDesign中插入一个工具条。

1、新建一个module命名为PartAddin,并将它设为active。

2、做接口CATIPrtWksAddin的implemention,insert->component,弹出对话框如图,输入addin的名字,点击add再点击浏览选择要执行的接口,如图。

要选择的接口为CATIPrtWksAddin注意Search workspace为你的CATIA安装路径,并将下面的单选框设为空。

点ok完成。

文件相应的试图如下:3、此时建立了一个空的Addin。

在yourframe.dico文件中可以看到这个Addin的声明:NewAddin????? CATIPrtWksAddin? libPartDesignAddin但是,要创建一个工具条,我们还需要在这个类:NewAddin中添加一些函数。

在NewAddin类中添加两个Public函数声明:void CreateCommands();CA TCmdContainer * CreateToolbars();在NewAddin.cpp中添加宏定义:#include "CATCommandHeader.h"???????MacDeclareHeader(PartCmdHeader);这两个函数及宏都可以按ctrl+F1查到,CreateCommands里面的代码只是用MacDeclareHeader生成的PartCmdHeader定义命令的header(不知道怎么翻译,就是工具条或菜单里面可以看到的执行命令的按钮了,这个命令是连接界面命令和实现代码的桥梁。

)如:?new PartCmdHeader(“point”,“CmdModule”,“TestCmd”,(void *)NULL);new PartCmdHeader("line","CmdModule","LinCmd",(void *)NULL);第一个参数是按钮的名字,第二、三个代表按钮执行的命令所在的module和命令的名字,参数四缺省就行了。

CATIA二次开发(CAA)技术基础之零件设计说明

CATIA二次开发(CAA)技术基础之零件设计说明

CATIA二次开发(CAA)技术基础之零件设计说明CATIA是由法国达索公司开发的一款三维设计软件,被广泛应用于航空航天、汽车、工程机械、电子等行业。

CATIA提供了丰富的功能模块,可以进行零部件设计、装配设计、模具设计等操作。

而CATIA二次开发(CAA)则是在CATIA的基础上进行的二次开发,通过CAA技术,用户可以根据自己的需求进行功能拓展,提高工作效率。

1.C++语言基础CAA的二次开发主要通过C++语言来实现。

因此,作为开发人员,需要具备扎实的C++语言基础,包括语法、指针、类和对象等的使用。

此外,还需要了解面向对象的设计和编程思想,以便能够高效地使用CAA的各种功能接口。

2.CATIA基础知识熟悉CATIA的基本操作和功能是进行CAA二次开发的前提条件。

开发人员需要了解CATIA的各个模块,包括零部件设计、装配设计、模具设计等,以及CATIA的数据结构和文件格式。

只有对CATIA有深入的了解,才能更好地在开发中应用和扩展CATIA的功能。

3.CAA架构CAA是CATIA的二次开发平台,提供了各种功能接口和开发工具,使开发人员能够通过编程的方式对CATIA进行功能拓展。

CAA的架构包括CATIA定义的一系列C++库和工具,熟悉CAA的架构和各个模块的接口,是进行二次开发的关键。

4.开发环境配置进行CAA二次开发需要配置开发环境,主要包括编译器、开发工具和CATIA软件本身。

常用的CAA开发环境有Visual Studio和Eclipse等,通过配置编译器和开发工具,可以在集成开发环境中进行代码编写、调试和测试。

另外,还需要安装CATIA的开发包,并进行相关配置,以便能够使用CATIA的功能接口。

5.开发流程和规范CAA的二次开发需要按照一定的流程和规范进行。

首先,需要明确开发的目标和需求,在此基础上进行功能设计和接口设计。

然后,根据设计,编写代码并进行调试和测试。

最后,进行代码的集成和发布,确保开发的功能能够正常运行。

CATIA二次开发-CAA基础

CATIA二次开发-CAA基础

CATIA的一些基本概念
l
Workshop和Workbench:它们为CATIA的功能模块的组织。CATIA
将其功能细分,每个人都可以选择自己的模块进入进行设计,简化了
界面。 如下图:
Module
Framework
Workbench
Workshop
Catia对话框
对话框架包含在类CATInteractiveApplication下, 此类如下:public class CATInteractiveApplication , 交互式应用的基类,作用:交互应用程序的基类,进化论 是在单文档,多文档或者模态对话框,如catia v5版本那 样。为了创建你的交互式应用程序,你应该,创建一个从 CATInteractiveApplication派生的类,并且重载 BeginApplication and EndApplication方法,但是不要 直接实例化这个类
框架(FRAMEWORK):框架提供对所有应用程序有用的功能(如接 口、存储)。它提供了统一的总设计。框架是对相似应用程序集合的 一个部分(统一但不完整)解决方案。开发者的任务是用这不完整的 解决方案加上必要的代码建立完整的应用。在领域(DOMAIN)内的一 个应用包括不变部分和可变部分。不变部分由框架把握,一般可占到 80%,可变部分由开发者把握,一般可占到20% 。开发者通过向框架 添加变化部分的代码把握其动作,而形成新的特定应用。框架根据是 否针对特殊领域还是若干领域,可分为水平框架、垂直框架、复合文 挡框架。
面向对象技术只能通过重用类库已有的类来实现有限的重用, 而软件组件结构(SCI)提供了最高层次的代码重用。
软件组件结构(SCI:Software Component Infrastructure) 有三个基本的概念:框架(FRAMEWORK)、组件(Component)和对象 总线(Products Bus)。

CATIACAA二次开发详细教程

CATIACAA二次开发详细教程

CATIACAA⼆次开发详细教程CATIA CAA ⼆次开发详细教程(11)程序的发布1.发布条件:已安装了CATIA,版本不能低于开发使⽤的CAA版本。

CAA代码成果物“intel_a”⽂件中的所有⽂件。

1.发布⽅法:2.将“intel_a”⽂件存放在要发布机器上,存放“intel_a”⽂件的路径最好不要有中⽂字符和空格。

(例:E:\VCINewFromExisting\intel_a)3.点击”开始” –> ”所有程序” –> “CATIA P3” –> “Tools” –>”Environment Editor V5R18”1.点击“确定”。

1.选择”Environment” –> “New”1.“Name” 栏为将要创建的桌⾯快捷⽅式的名称;在”Install Path”栏中,CATIA的安装路径后输⼊”;E:\VCINewFromExisting\intel_a”,这是要发布的intel_a的存放路径;其他如图所选,采取默认设置。

完成后点击”OK”。

1.⾄此发布完成,在桌⾯上会⽣成⼀个名为”NewFromExisting”的CATIA类型图标。

双击该图标,会启动CATIA,⽤户便可使⽤CATIA 原所有功能和新发布的功能。

1.与原CATIA图标集成发布⽅法:设:Catia的⼯作⽬录是 D:\DS\B18\intel_a;已开发插件的⼯作⽬录是D:\MyAddin\intel_a;将D:\MyAddin\intel_a下这些⽂件复制到D:\DS\B18\intel_a对应的位置,即可在运⾏Catia时候⾃动加载插件:code \ bin \ *.dll;\ code \dictionary \ *.dico;\ code \ productIC \ *.script;\ code \ productIC \ *.xml;\ resources \ graphic \ icons \ normal \ *.bmp; \ resources \ msgcatalog \ *.CATNls;\ resources \ msgcatalog \ *.CATRsc;。

CATIACAA二次开发详细教程

CATIACAA二次开发详细教程

CATIA CAA 二次开发详细教程第一讲:基本概念1. 什么是组件?由于本人是自学,属于摸着石头过河,所以很多东西显得比较幼稚,大家请见谅。

CAA,全称 C omponent A pplication A rchitecture,组件应用架构。

这个东西对不搞软件的人来说可能很陌生,我也很陌生啊,原来光知道“面向对象的技术”就很牛逼了,“组件技术”难道更牛逼吗?既然类和组件有着这么多类似的地方,那么传统的面向对象编程和面向组件编程有什么区别呢?简单的说,面向对象关注的是组合在一个二进制可执行文件中的各个类的关系,而面向组件的编程关注的是在彼此独立的基础上模块之间的交互性,这种交互性使得你并不需要熟悉它们内部的工作原理。

这两种方法最基本的不同在于它们对最终的应用程序的观点。

在传统的面向对象编程中,尽管你可以精心的把所有的商业逻辑分布在不同的类中,一旦这些类被编译,它们就被固化成了一个巨大的二进制代码。

所有的类共享同一个物理单元(通常是一个可执行文件)、被操作系统认为是同一个进程,使用同一个地址空间以及共享相同的安全策略等等。

如果多个开发者在同一份代码上进行开发,他们甚至还要共享源文件。

在这种情况下,修改一个类可能会让整个项目被重新链接,并重新进行必要的测试,更严重的,还有可能要修改其他的类。

但是,在面向组件开发中,应用程序是由一系列可以互相交互的二进制模块组合而成的。

一个具体的二进制组件可能并不能完成什么工作。

有些组件是为了提供一些常规服务而编写的,例如通信的封装或者文件访问组件。

也有一些是为了某些特定应用而专门开发的。

一个应用程序的设计者可以通过把这些不同的组件提供的功能粘合在一起来实现他们需要的商业逻辑。

很多面向组件的技术——例如: COM 、 J2 EE 、 CORBA 和 .NET 都为二进制组件提供了的无缝链接的机制。

而唯一的不同就是你需要在组件通信上花费的力气。

把一个二进制应用程序分解成不同的二进制组件的动机和把不同的类放到不同的文件中是类似的。

CATIA二次开发培训文档(凸台的创建)

CATIA二次开发培训文档(凸台的创建)

凸台的创建第一部分:工作台的创建一、创建工程1、点击File-> New CAA V5 Workplace;弹出如下界面;然后选择工程创建的目录,以及tool level(当前CATIA以及CAA的版本)2、选择第二项,create new generic framework,然后finish;3、填写模块的名字,点击OK后,工程就建立好了。

二、加载CAA提供的模块点击CAA Workspace->Locat Prerequisite Workspaces,弹出下列对话框:点击Add,选择CATIA安装目录的B18目录,点OK后,若提示Command done without errors加载完成。

三、创建一个模块(用于工作台的过渡)接下来就要开始逐步创建workbench了,点击File->Add CAA V5 Project->New Module,弹出下面对话框,填写Module的名称。

OK确定后会建立一个CreatePadTest.m的模块,并且被设为StartUp project,用加粗的字体显示。

四、创建workbench(注意上一步建立的模块要设为startup project)点击File->CAA V5 Item->CATIA Resouse->CATIA Pattern,弹出下列对话框:选择workbench,填写workObject Name,以及选择Associated Workshop(注:若不执行第二步,即没有加载CAA资源,则在Available workshops中没有关于Associated Workshop的选择:)之前实验室MSFA等平台是基于装备体对零件进行操作,采用的是PRDWorkshop在一般会出三个坐标系,这在开发时会经常出现坐标系的转换,增加了开发难度,现在所有模块开始采用PrtWks,基于零件体本身进行操作,只有一个坐标,直接在零件体上创建新的属性,并赋值保存下来。

CATIA CAA 二次开发详细教程(10) 文档操作方法 创建 加载 保存

CATIA CAA 二次开发详细教程(10) 文档操作方法 创建 加载 保存

CATIA CAA 二次开发详细教程(10)文档操作方法创建加载保存一、创建(Create the new document)CATDocument* pDoc = NULL;rc = CATDocumentServices::New("Part",pDoc);if (NULL != pDoc){cout << "New document created OK" << endl << flush;}else{cout << "ERROR in creating New document" << endl << flush;return 2;}Now that the session is opened, you can create a new document using the New static method of CATDocumentServices. This method creates a document and initializes it, allowing it to be loaded and stored and making it editable. In this use case, a pre-defined document type, "Part", is used as a document type. In interactive mode, this is the name that appears when performing a File/New operation. It is not the file extension, which, in this case, is "CATPart".二、打开(Load the document)CATDocument *pDoc = NULL;rc = CATDocumentServices::Open(argv[1],pDoc);if (SUCCEEDED(rc) && (NULL != pDoc)){cout << "Document opened OK" << endl << flush;}else{cout << "ERROR in opening an existing document" << endl << flush;return 2;}Now that the session is opened, you can load an existing document using the Open static method of CATDocumentServices. This method needs, as a first parameter, the entire storage path name and document name of the existing document that we want to load into the session. In this use case, we enter this information as an argument to the program. The second parameter of the Open method returns a CATDocument pointer to the document it has loaded.Once the document exists in the session, you can work with objects within it, using specific interfaces external to the ObjectModelerBase framework.三、获取当前文档CATFrmEditor * pEditor = GetEditor();if (NULL != pEditor ){cout << "Editor got OK" << endl << flush;}else{cout << "ERROR in getting the current editor" << endl << flush;return 1;}CATDocument *pDoc = pEditor->GetDocument();if (NULL != pDoc){cout << "Document opened OK" << endl << flush;}else{cout << "ERROR in opening an existing document" << endl << flush;return 2;}四、提取根容器(Retrieving the Document Root Container)CATInit *piInitOnDoc = NULL;rc = pDoc -> QueryInterface (IID_CATInit, (void**) &piInitOnDoc);if (FAILED(rc)){cout << "ERROR in QueryInterface on CATInit for doc" << endl << flush;return 3;}const CATIdent idCATIContainer = "CATIContainer";CATIContainer *piRootContainer = NULL;piRootContainer = (CATIContainer*) piInitOnDoc -> GetRootContainer(idCATIContainer);if (NULL == piRootContainer){cout << "ERROR in GetRootContainer" << endl << flush;return 4;}The document root container is retrieved using the CATInit::GetRootContainer method. The CATIContainer handle retrieved through GetRootContainer will be necessary whenever you want to create or manipulate objects in the document.五、保存文档(Save the Document)5.1 另存rc = CATDocumentServices::SaveAs (*pDoc, argv[1]);if (SUCCEEDED(rc)){cout << "Document saved OK" << endl << flush;}else{cout << "ERROR in saving document" << endl << flush;return 5;}To save the new document, use the SaveAs static method of CATDocumentServices. This method takes the pointer to the document created by New as a first parameter, and the storage path name and document name under which the document is to be stored as a second parameter. In this use case, we pass the storage path name and document name as an argument to the program.5.2 保存rc = CATDocumentServices::Save (*pDoc);if (SUCCEEDED(rc)){cout << "Document saved OK" << endl << flush;}else{cout << "ERROR in saving document" << endl << flush;return 3;}To save the new document under the same name, use the Save static method of CATDocumentServices. This method takes the CATDocument pointer to the document as the only parameter.六、删除(Remove the document)rc = CATDocumentServices::Remove (*pDoc);if (SUCCEEDED(rc)){cout << "Document removed OK" << endl << flush;}else{cout << "ERROR in removing document" << endl << flush;return 6;}If you ever needed to re-open the document during this same session, it would then be necessary to also remove it from the session after having saved it. Otherwise, you need not worry about it since deleting the session will automatically remove the document as well. To remove the document, you should use the Remove static method of CATDocumentServices.七、按指定文档格式保存(Exporting a Document Format Type)7.1 Defining the New Document Format TypeCATProduct_OmbExportType CATIExportTypeManager libCAAOmbExportTypeA new document format type is simply defined by adding a new entry in the current framework's dictionary. This new entry will cause the File/SaveAs dialog box to list the new format type among the types defined to the save operation. The first parameter, CATProduct_OmbExportType, indicates that the exporting document is a Product-type document (i.e., a document having a .CATProduct suffix) and that the exported document format type is "OmbExportType", which will also be the suffix of the saved document. The second parameter indicates that this new document type will implement the CATIExportTypeManager interface in order to define the specific save operations necessary to export the new document. The last parameter is the name of the library in which the implementation module is to be found.7.2 Implementing CATIExportTypeManager See the Object Modeler articles [2] for a detailed explanation about interface implementations.The implementation of CATIExportTypeManager is found in the CAAOmbExportType.m module defining the CAAEOmbExportTypeData implementation class.CATImplementClass( CAAEOmbEExportTypeData,CodeExtension,CATBaseUnknown,CATProduct_OmbExportType );The CATImplementClass macro defines the implementation class CAAEOmbExportTypeData as a code extension implementing theCATProduct_OmbExportType late type.#include "TIE_CATIExportTypeManager.h"TIE_CATIExportTypeManager( CAAEOmbExportTypeData );The above statement indicates that this is an implementation of the CATIExportTypeManager interface.HRESULTCAAEOmbExportTypeData::ExportData( CATDocument *pDoc,CATUnicodeStringpath ){cout << "************** Begin ExportData 1" <<endl << flush;HRESULT rc = CATDocumentServices::SaveAs(*pDoc,path);return rc;}In this case, the document is simply saved using the SaveAs method of CATDocumentServices. However, it is in this method that you must code any specific save operations necessary for your new document type.。

CATIA CAA 二次开发 详细教程(5)添加一个点

CATIA CAA 二次开发 详细教程(5)添加一个点

CATIA CAA 二次开发详细教程(5)添加一个点在创建任何几何对象之前,必须在激活的函数命令中添加以下代码,:CATFrmEditor* pEditor = CATFrmEditor::GetCurrentEditor();if(pEditor == NULL){printf("error getting the FRM editor");}CATDocument *pDoc = pEditor->GetDocument();CATIContainerOfDocument_var spConODocs = pDoc;CATIContainer* pSpecContainer = NULL;HRESULT hr = spConODocs->GetSpecContainer(pSpecContainer);if(spConODocs == NULL_var){printf("error getting the container of documents");}以上代码的主要功能是获取editor, the document and the container。

CATIGSMFactory_var spGSMFactory = NULL_var;CATIPrtFactory_var spPrtFactory = NULL_var;CATICkeParmFactory_var spParmFactory = NULL_var;spGSMFactory = pSpecContainer;spPrtFactory = pSpecContainer;spParmFactory = pSpecContainer;以上代码设置工厂,在这基础上你才可以造型,GSMFactory用于创建底层的几何对象比如点、线等。

PrtFactory包含创建孔特征、拉伸特征实体等函数。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
相关文档
最新文档