Catia二次开发源码分享:选择一个平面
Catia二次开发源码分享:选择一个平面
#include "CAARCSelectPlane.h"
#include "CATIndicationAgent.h"
#include "CATMathPlane.h"
#include "CATCreateExternalObject.h"
#include "CATIGSMPlane.h"
#include "CATPathElementAgent.h"
#include "CATPathElement.h"
#include "CATISpecObject.h"
#include "CATAp ...
AddPrereqComponent解释
簡單的說...
每個Prerequesit Fmk都包含了整個CAA中一部份的功能
我所謂的功能就包含了header file跟lib
而為什麼要有這個Prerequesit Fmk的架構勒
是因為如果沒有這個架構
那麼compiler/linker在compile/link一個程式時
會花非常久的時間在找header file...(因為header檔案太多了)
同樣的link也是一樣...
所以他 ...
Catia CAA二次开发源码分享:3D 投影到制图步骤
提示:要关联的Doc必须是当前Doc
CATFrmEditor *pCurrFrmEditor = GetEditor();
CATPathElement oUIActPathElem = pCurrFrmEditor->GetUIActiveObject();
CATBaseUnknown* pCurrElemBase = oUIActPathElem.CurrentElement();
CATILinkableObject_var spLink(pCurrElemBase);
1。首先要生成一个新的Drawing, 在inte ...
CATIA CAA二次开发源码分享:拓扑转特征过程--线
CATIA CAA二次开发源码分享:拓扑转特征过程
[mw_shl_code=c,true] CATTopVertex *pTopVertex = NULL;
CATBody *pPtBody1 = NULL;
CATBody *pPtBody2 = NULL;
CATBody *pLineBody = NULL;
CATSoftwareConfiguration *pConfig = new CATSoftwareConf ...
CATIA 二次开发源码分享: CAA 如何新建一个文档
新建文档是CAA开发中的常用操作,分为在批处理环境下新建和在可视化交互环境下新建两种。下面以在批处理环境下新建为例,简要介绍步骤及涉及的方法。
创建会话
这是一个批处理程序,在使用文档之前首先需要打开一个会话。在CAA中,打开一个会话可使用全局函数Create_Session。
char *sessionName = "CAA2_Sample_Session ...
Catia二次开发源码分享:创建圆柱体实例
获得零件指针
// 获得文件指针
CATDocument * pDoc= NULL;
CATFrmEditor * _pEditor = CATFrmEditor::GetCurrentEditor();
pDoc = _pEditor->GetDocument();//这里得到了PART 环境下的文档指针
CATInit_var spInitOnDoc(pDoc);
// 得到零件根容器
CATIPrtContainer * piPrtCont =
(CATIPrtContainer*) spInitOnDoc->GetRoo ...
Catia二次开发源码分享:创建草图 Sketch,约束,曲线等
有两种方式可以创建草图:
1.通过参考平面创建
//获得参考平面
CATLISTV(CATISpecObject_var) spRefPlanes = spPart->GetReferencePlanes();
//初始化草图工厂
CATISketchFactory_var spSketchFactory(spContainer);
//在XY plane 上创建草图
CATISketch_var spSketch = spSketchFactory->CreateSketch(spRefPlanes[1]));
2 ...
Catia二次开发源码分享:创建实体特征
创建实体特征
实体特征主要包括凸台、槽、旋转体、孔、盒体、倒圆、倒角和厚曲面等特征,创建实体特征采用CATIPrtFactory 工厂中的方法,
创建实体特征的方法
凸台 CreatePad
槽 CreatePocket
旋转体 CreateRotate
孔 CreateHole
盒体 CreateShell
倒圆 CreateFillet
倒角 CreateChamfer
厚曲面 CreateThickness
现举创 ...
Catia二次开发源码分享:创建几何图形集等节点
创建几何图形集等节点
//初始化CATIMechanicalRootFactory 工厂
CATIMechanicalRootFactory_var spMechanicalRootFactory = spContainer;
//创建几何图形集
virtual HRESULT CreateGeometricalSet(const CATUnicodeString& iUserName,
const CATISpecObject_var& iDestination,
CATISpecObject_var & oGeomSet,
int iPosi ...
Catia二次开发源码分享:创建参数和公式
创建参数和公式
1.创建参数
//初始化CATICkeParmFactory 工厂
CATICkeParmFactory_var spParmFactory = spContainer;
CATICkeParm_var spParam1 = spParmFactory->CreateLength("Base",0.1);
CATICkeParm_var spParam2 = spParmFactory->CreateLength("Width",0.15);//长度单位为米
CATICkeParm_var spParam3 = spParmFact ...
Catia二次开发源码分享:创建轴系
创建轴系
//首先初始化工厂
CATIMf3DAxisSystemFactory * pIMf3DAxisSystemFactoryOnFeatCont = spContainer;
CATMathPoint Origin (150.0,.0,.0);
CATMathVector X (1.0,.0,.0);
CATMathVector Y (0.0,1.0,.0);
CATIMf3DAxisSystem_var NewAxisSystemStd;//创建的轴系
pIMf3DAxisSystemFactoryOnFeatCont->CreateAxisS ...
Catia二次开发源码分享:获得几何图形集等节点
获得几何图形集等节点
例 1:获得零件中的所有几何体的代码如下。
CATIPartRequest *pIPartRequest =NULL ;
HRESULT rc = spPart->QueryInterface(IID_CATIPartRequest,(void**)&pIPartRequest );
if ( SUCCEEDED(rc) )
{
CATLISTV(CATBaseUnknow_var) ListBodies;//所有几何体
CATUnicodeString ViewContext ="MfDefault ...
Catia二次开发源码分享:获取表达式参数的方法
获得参数
方法一:利用CATIDescendants 接口
CATIDescendants_var spDescendantsOnPart = spPrtPart;
CATListValCATISpecObject_var spSpecObjects;
piDescendantsOnPart->GetAllChildren("CATICkeParm", spSpecObjects);
方法二:利用CATIParmPublisher 中接口
CATIParmPublisher_var spParmPublisher = spPrtPart;
C ...
Catia二次开发源码分享: 获得零件下所有节点
获得 CATIPrtPart
参考代码如下:
CATIPrtContainer_var spPrtContainer = spContainer;
CATIPrtPart_var spPrtPart = spPrtContainer ->GetPart();
获得零件下所有节点
方法一:利用 CATIDescendants 接口
CATIDescendants_var spDescendantsOnPart = spPrtPart;
CATListValCATISpecObject_var spSpecObjects;
piDesce ...
Catia二次开发获取罗盘
有过CATIA使用经验的人对罗盘一定都不陌生,罗盘是CATIA提供给操作者方面操作环境中零件的使用工具。使用CAA进行CATIA二次开发的时候,我们也可以通过代码获取CATIA的罗盘,实现方便操作零件的目的。
下面给出CAA获取罗盘的方法:
//获取视图对应的罗盘
CATI3DCompass_var GetCompass(){
//获取当前编辑器
CATFrmE ...
catia二次开发源码分享:隐藏对象元素
void HideElements(CATLISTV(CATISpecObject_var) ipListElemObj)
{
for(int i=1;iQueryInterface(IID_CATIVisProperties,
(void**)&pPropOnElem);
if(NULL != pPropOnElem){
CATVisPropertiesValues PropValue;
CATVisPropertyType PropTypeOnPtObj = CATVPShow;
...
一图了解Catia CAA二次开发零件设计接口
零件设计接口介绍
如何获取Catia文档属性教程
CATIA的文档属性是开发过程经常需要获取的信息。在CATIA V5中,系统不仅提了“零件编号”等常用属性,还支持自定义扩展属性。值得注意的是属性值都需要一个数据类型,如下图所示,“长”自定义属性的属性值类型为“长度”。
查询CATIAttributesDescription接口
CATIAttributesDescription是CAA中用来获取属性的接口,其 ...
Catia 二次开发源码分享: 获取所有的平面并着色
个人认为,比较常见吧,如何遍历得到几何体,通过几何体获取到拓扑体,通过体获取到几何元素,通过几何元素获取到单元,单元再到几何进行判断面的种类,对于BrepAccess的获取需要借用 全局函数 CATBrepAccess !
[mw_shl_code=c,true]
//get the main body
---- -----
{
CATIPartRequest_var spPrtRequest = sp ...
Catia二次开发获取环境变量的方法
环境变量一般被用来指定系统运行时的一些参数,如系统文件夹位置。在CATIA二次开发过程中,获取环境变量可分为获取CATIA环境变量和获取操作系统环境变量。
CATIA环境变量
CATIA环境变量可以通过环境编辑器进行查看和编辑。CAA提供全局函数CATGetEnvValue可获取CATIA的环境变量。
char *pCATDLLPath = "";
CATLibStatus ...
CATIA二次开发源码分享: 获取所有的圆角类型并着色
CATIA二次开发源码分享: 获取所有的圆角类型并着色
本部分主要学习如何对特征进行颜色标记处理!
重要的是思路,通过CATIPrtPart 获取CATIDecendants接口,在这里可以设置要查询的类型,通过获取的特征得到特征对应几何的Brep信息,从而可以调用可视化的方法进行颜色处理!对于CATVPMesh的类型主要可以处理颜色和透明度 ...
Catia二次开发源码分享: 对面进行颜色修改和添加属性
Catia二次开发源码分享: 对面进行颜色修改和添加属性
[mw_shl_code=c,true]//
// 3- Loads the input document
//
CATDocument *pDoc = NULL;
rc= CATDocumentServices::OpenDocument(iArgv[1], pDoc) ;
if( FAILED(rc) )
{
cout
Catia二次开发源码分享: 获取装配所有组件列表
Catia二次开发源码分享: 获取装配所有组件列表
[mw_shl_code=c,true]/* ----------------------------*/
/* 2. Retrieves Root Product */
/* ----------------------------*/
// Begin navigation through the document => start with the RootProduct.
CATIDocRoots* piDocRootsOnDoc = NULL;
rc = pDoc->Qu ...
Catia 二次开发源码分享:获取系统信息
CAA提供了一个全局方法CATGetSystemInfo用来获得当前主机的信息,其用参数返回一个CATSystemInfo结构体,将其结构体解包即可获得主机名字、主机系统名字、系统版本等主机信息。
CATSystemInfo host;
::CATGetSystemInfo(&host);
cout
如何读取Catia 设置文件!
CATSettingRepository是CAA中负责管理设置文件(*.CATSetting)的类,该文件一般储存于“C:%users%userName\AppData\Roaming\DassaultSystemes\CATSettings”文件夹下,每一个SettingRepository对应一个设置文件,通过名字获得。CATSettingRepository * pRepository = CATSettingRepository::GetRepository("Licensing");
c ...
Catia V6软件下载地址分享
所有资源来源于网络,仅供学习参考之用。
3DEXPERIENCE_R2017x
链接: https://pan.baidu.com/s/1pLUijaV
密码: ae8j
3DEXPERIENCE_R2016x
链接: https://pan.baidu.com/s/1miOiAjI
密码: kazw
3DEXPERIENCE_R2015x
链接: https://pan.baidu.com/s/1pLtAvDx
密码: yqk1 ...
CAA二次开发CATIA版本与VS版本之间的匹配关系:
CAA二次开发CATIA版本与VS版本之间的匹配关系:
vs2005 R18-R20
vs2008 R21-R24
VS2012 R25
Catia二次开发源码分享: 关于创建命令和菜单方法
Catia二次开发源码分享: 关于创建命令和菜单方法
//Methods implementation
void myAddin::CreateCommands()
{
new PartCmdHeader("CreatePoint","CmdModule","PointCmd",(void *)NULL);
new PartCmdHeader("CreateLine","CmdModule","LineCmd",(void *)NULL);
new PartCmdHeader("CreateDialogTest","CmdModule" ...
Catia软件使用入门教程
Catia软件使用入门教程
链接:http://pan.baidu.com/s/1hskkp7Y 密码:b6i2
基于CATIA CAA 二次开发飞机零部件设计
飞机零部件设计是飞机总体设计中的一个重要步骤。由于飞机零部件有几万个,而且大部分零部件类似,结构复杂,重复设计这些飞机零部件耗时耗力,因此如何快速地生成飞机零部件是一个重要的问题。本文以某飞机的框类零件作为研究对象,以CATIA的二次开发作为工具研究了一种可快速驱动生成新的框类零件的参数化建模方法。首先 ...
CAA开发之文档操作
CAA开发之文档操作
CAA开发中经常会遇到对模型文件的创建 ,加载 ,删除 和保存等操作,项目开发中可针对通用功能对基本方法进行封装。本文梳理文档操作的基本方法,并举例对部分方法进行封装,仅供参考。
CAA中对文档操作的基本步骤如下:
创建会话 - creating the session
新建文档 - creating a new document
调 ...
Catia CAA 三种命令启动对话框的方式和区别
A Dialog Basic Command (对应案例中对话框 DialogA DialogACmd )
步骤:
1 创建普通对话框 :如案例中的DialogA,拖拽控件资源进行对话框布局,并保存。可以查看DialogA.h和DialogA.cpp文件中添加了对控件的声明和定义。
File ->Add CAAV5 Item -> CATIA Resource ->Dialog
2 创建普通对话框基本命令 :
File ...
Catia CAA 关于命令的分类
Catia CAA 关于命令的分类
(1)单步命令(One-shot Commands):运行时用户不能有附加选项,从其开始运行直至其结束期间无法停止,该类命令派生自CATCommand类。
(2)对话框命令(Dialog Box Commands):用户可以输入参数值或选择选项,对话框本身即命令,而不是其它命令的一部分,该类命令派生自CATDlgDialog类。
(3 ...
Catia二次开发源码分享:鼠标点击创建点
Catia二次开发源码分享:鼠标点击创建点
#include "CAARCCreatePoint.h"
#include "CATIndicationAgent.h"
#include "CATMathPlane.h"
#include "CATCreateExternalObject.h"
#include "CATMathPoint2D.h"
#include "CATMathPoint.h"
#include "CATMathPlane.h"
#include "CATIGSMPoint.h"
#include "CATFrmEditor.h ...
Catia二次开发源码分享: 通过鼠标点击创建直线
Catia二次开发源码分享: 通过鼠标点击创建直线
#include "CAARCCreateLine.h"
#include "CATIndicationAgent.h"
#include "CATMathPlane.h"
#include "CATCreateExternalObject.h"
#include "CATMathPoint2D.h"
#include "CATMathPoint.h"
#include "CATMathPlane.h"
#include "CATIGSMPoint.h"
#include "CATIGSML ...
Catia CAA二次开发源码分享: 选择控件返回选择内容
Catia CAA二次开发源码分享: 选择控件返回选择内容
// Add your code here
CATDlgNotify *infordialog = new CATDlgNotify(this," ",CATDlgNfyInformation);
CATUnicodeString str;
CATUnicodeString tempvalue;
int index = _SelectorListTest->GetSelectCount();
int *array = (int *) malloc(index*sizeof(int) ...
解决catia 二次开发 CAA 帮助文档搜索问题
解决catia 二次开发 CAA 帮助文档搜索问题
点击CAA VS集成的帮助文档,点击文件 --》选择 search from workspace
然后浏览到CAADoc 文件夹即可 !!
CAA中定义全局函数的技巧
在CAA中定义全局函数时要做到以下几点:
1、包含全局函数的类在新建时,Header一定要选择PublicInterface,默认的是localInterface。如图所示
2、如果在某个模块中用到了全局函数,则在这个模块的.mk文件中一定要链接全局函数所在的模块
3、在定义全局函数所在的类时,前面一定要有ExportedByGlobal,如图所示,
表示全 ...
CATIA CAA Spec/Result Modeler基本概念解释
CATIACAA Spec/Result Modeler基本概念解释
“Specs”指组成对象的事物,“Specs”处理之后产生的叫“Result”。如线段:两个点为“specs”,线段即其“specs”的“result”,而每个点由坐标确定,坐标集合是点的“specs”,点即其相应“specs”的“result”。Spec/Result模型为Spec/Result管理提供了基础结构,也称为Bu ...
CATIA CAA 命令的类型及应用
命令是程序交互的基础,CAA中命令主要分为三类:
单步命令(One-shot Commands):运行时用户不能有附加选项,从其开始运行直至其结束期间无法停止,该类命令派生自CATCommand类。
对话框命令(Dialog Box Commands):用户可以输入参数值或选择选项,对话框本身即命令,而不是其它命令的一部分,该类命令派生自CATDlgDi ...