教学文库网 - 权威文档分享云平台
您的当前位置:首页 > 精品文档 > 资格考试 >

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

来源:网络收集 时间:2026-01-25
导读: CATIA CAA 二次开发 详细教程 CATIA CAA 二次开发 详细教程(5)添加一个点 在创建任何几何对象之前,必须在激活的函数命令中添加以下代码,: CATFrmEditor* pEditor = CATFrmEditor::GetCurrentEditor(); if(pEditor == NULL) { printf(\ } CATDocument *p

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字,全部文档内容请下载后查看。喜欢就下载吧 ……

CATIA CAA 二次开发 详细教程(5)添加一个点.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.jiaowen.net/wendang/412017.html(转载请注明文章来源)
Copyright © 2020-2025 教文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:78024566 邮箱:78024566@qq.com
苏ICP备19068818号-2
Top
× 游客快捷下载通道(下载后可以自由复制和排版)
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能出现无法下载或内容有问题,请联系客服协助您处理。
× 常见问题(客服时间:周一到周五 9:30-18:00)