CATIA CAA 二次开发 详细教程(5)添加一个点
CATIA CAA 二次开发 详细教程
CATIA CAA 二次开发 详细教程(5)添加一个点
在创建任何几何对象之前,必须在激活的函数命令中添加以下代码,: CATFrmEditor* pEditor = CATFrmEditor::GetCurrentEditor(); if(pEditor == NULL) {
printf(\ }
CATDocument *pDoc = pEditor->GetDocument(); CATIContainerOfDocument_var spConODocs = pDoc; CATIContainer* pSpecContainer = NULL;
HRESULT hr = spConODocs->GetSpecContainer(pSpecContainer); if(spConODocs == NULL_var) {
printf(\ }
以上代码的主要功能是获取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包含创建孔特征、拉伸特征实体等函数。ParmFactory 包含设定参数的函数。
在以上的基础上可以创建点了,步骤如下: (1)创建一个三维数组(x,y,z)定义点坐标。 double Coords[3]; Coords[0] = 0; Coords[1] = 0; Coords[2] = 0;
(2)创建一个CATIGSMPoint并将其转换为CATISpecObject
CATIGSMPoint_var spPoint1 = spGSMFactory->CreatePoint(Coords); //Creates a point
30
CATIA CAA 二次开发 详细教程
CATISpecObject_var spSpecPoint1 = spPoint1; //Casts the point as a CATISpecObject
(3)为了在CATIA显示你创建的点,必须将其添加到视图中。 spSpecPoint1->Update();
CATIGSMProceduralView_var spPntObj = spSpecPoint1; spPntObj->InsertInProceduralView(); 所有的源代码如下: // www.mememama.cn
// ----------------------------------------------------
CATStatusChangeRC MyCommand::Activate( CATCommand * iFromClient, CATNotification * iEvtDat)
{
CATFrmEditor* pEditor = CATFrmEditor::GetCurrentEditor();
if(pEditor == NULL) {
printf(\r\
}
CATDocument *pDoc = pEditor->GetDocument(); CATIContainerOfDocument_var spConODocs = pDoc; CATIContainer* pSpecContainer = NULL;
HRESULT hr = spConODocs->GetSpecContainer(pSpecContainer);
if(spConODocs == NULL_var) {
printf(\ of documents\
}
CATIGSMFactory_var spGSMFactory = NULL_var; CATIPrtFactory_var spPrtFactory = NULL_var; CATICkeParmFactory_var spParmFactory = NULL_var; spGSMFactory = pSpecContainer; spPrtFactory = pSpecContainer; spParmFactory = pSpecContainer;
31
CATIA CAA 二次开发 详细教程
double Coords[3]; Coords[0] = 0; Coords[1] = 0; Coords[2] = 0;
CATIGSMPoint_var spPoint1 = spGSMFactory->CreatePoint(Coords); //Creates a point
CATISpecObject_var spSpecPoint1 = spPoint1; //Casts the point as a CATISpecObject
spSpecPoint1->Update();
CATIGSMProceduralView_var spPntObj = spSpecPoint1;
spPntObj->InsertInProceduralView();
return (CATStatusChangeRCCompleted); }
CATIA CAA 二次开发 详细教程(6)创建一条线
初始的设定请参考上一讲《CATIA CAA 二次开发 详细教程(5)添加一个点》。在此基础上,创建线的步骤如下:
1)创建两个点并将其转换为CATISpecObjects。 double Coords[3]; Coords[0] = 0; Coords[1] = 0; Coords[2] = 0;
CATIGSMPoint_var spPoint1 = spGSMFactory->CreatePoint(Coords); CATISpecObject_var spSpecPoint1 =
spPoint1;
Coords[0] = 8; Coords[1] = 6; Coords[2] = 7;
CATIGSMPoint_var spPoint2 = spGSMFactory->CreatePoint(Coords); CATISpecObject_var spSpecPoint2 = spPoint2;
32
CATIA CAA 二次开发 详细教程
2) 利用创建的点创建一条线,并将其转换为CATISpecObject CATISpecObject_var spSupport = NULL_var;
CATIGSMLinePtPt_var spLine1 = spGSMFactory->CreateLine(spSpecPoint1, spSpecPoint2, spSupport);
CATISpecObject_var spSpecLine1 = spLine1; 3) 更新创建的线,并将其添加到视图中。 spSpecLine1->Update();
CATIGSMProceduralView_var spCurObj = spLine1; spCurObj->InsertInProceduralView();
CATIA CAA 二次开发 详细教程(7)创建草图Sketch
有两种方式可以创建草图: 1)通过参考平面创建
首先获取一个CATIPrtPart变量:
CATIPrtPart_var spPart(pIPrtContOnDocument->GetPart()); pIPrtContOnDocument->Release();
有了CATIPrtPart变量就可以利用其方法GetReferencePlanes(),获取参考平面
CATLISTV(CATISpecObject_var) spRefPlanes = spPart->GetReferencePlanes();
然后创建XY plane (spRefPlanes[1])
CATISketchFactory_var spSketchFactory(pSpecContainer); if ( NULL_var == spSketchFactory ) return (CATStatusChangeRCCompleted);
CATISketch_var
spSketch(spSketchFactory->CreateSketch(spRefPlanes[1]));
if ( NULL_var == spSketch ) return (CATStatusChangeRCCompleted); spSketch->OpenEdition(); 2) 通过原点和两个矢量方向
该方法是通过定义一个原点和两个方向pH、pV 进行创建。 定义原点和方向:
double origin[3]={0.0,0.0,10.0}; double x_dir[3]={1.0,0.0,0.0};
33
CATIA CAA 二次开发 详细教程
double y_dir[3]={0.0,1.0,0.0};
CATISketchFactory_var spSketchFactory(pSpecContainer); if ( NULL_var == spSketchFactory ) return (CATStatusChangeRCCompleted);
CATISketch_var
spSketch(spSketchFactory->CreateSketch(origin,x_dir,y_dir));
if ( NULL_var == spSketch ) return (CATStatusChangeRCCompleted); spSketch->OpenEdition();
到这里,你已经创建了一个Sketch,你可以在上面创建任意的草图了。 创建好记住要将其关闭: spSketch->CloseEdition();
CATIA CAA 二次开发 详细教程(8)草图上创建几何图形
在上一节的基础上,开始创建草图。首先创建草图工厂: CATI2DWFFactory_var sketch2DFactory(spSketch); 下面创建点:
CATI2DPoint_var spPt_bottom_left, spPt_bottom_right, spPt_top_right, spPt_top_left;
double pt_bo …… 此处隐藏:3337字,全部文档内容请下载后查看。喜欢就下载吧 ……
相关推荐:
- [资格考试]机械振动与噪声学部分答案
- [资格考试]空调工程课后思考题部分整合版
- [资格考试]电信登高模拟试题
- [资格考试]2018年上海市徐汇区中考物理二模试卷(
- [资格考试]坐标转换及方里网的相关问题(椭球体、
- [资格考试]语文教研组活动记录表
- [资格考试]广东省2006年高应变考试试题
- [资格考试]LTE学习总结—后台操作-数据配置步骤很
- [资格考试]北京市医疗美容主诊医师和外籍整形外科
- [资格考试]中学生广播稿400字3篇
- [资格考试]CL800双模站点CDMA主分集RSSI差异过大
- [资格考试]泵与泵站考试复习题
- [资格考试]4个万能和弦搞定尤克里里即兴弹唱(入
- [资格考试]咽喉与经络的关系
- [资格考试]《云南省国家通用语言文字条例》学习心
- [资格考试]标准化第三范式
- [资格考试]GB-50016-2014-建筑设计防火规范2018修
- [资格考试]五年级上册品社复习资料(第二单元)
- [资格考试]2.对XX公司领导班子和班子成员意见建议
- [资格考试]关于市区违法建设情况的调研报告
- 二0一五年下半年经营管理目标考核方案
- 2014年春八年级英语下第三次月考
- 北师大版语文二年级上册第十五单元《松
- 2016国网江苏省电力公司招聘高校毕业生
- 多渠道促家长督导家长共育和谐 - 图文
- 2018 - 2019学年高中数学第2章圆锥曲线
- 竞争比合作更重要( - 辩论准备稿)课
- “案例积淀式”校本研训的实践与探索
- 新闻必须客观vs新闻不必客观一辩稿
- 福师大作业 比较视野下的外国文学
- 新编大学英语第二册1-7单元课文翻译及
- 年产13万吨天然气蛋白项目可行性研究报
- 河南省洛阳市2018届高三第二次统一考试
- 地下车库建筑设计探讨
- 南京大学应用学科教授研究方向汇编
- 2018年八年级物理全册 第6章 第4节 来
- 毕业论文-浅析余华小说的悲悯性 - 以《
- 2019年整理乡镇城乡环境综合治理工作总
- 广西民族大学留学生招生简章越南语版本
- 故宫旧称紫禁城简介




