CATIA CAA 二次开发 详细教程(5)添加一个点_第1页
CATIA CAA 二次开发 详细教程(5)添加一个点_第2页
CATIA CAA 二次开发 详细教程(5)添加一个点_第3页
CATIA CAA 二次开发 详细教程(5)添加一个点_第4页
CATIA CAA 二次开发 详细教程(5)添加一个点_第5页
已阅读5页,还剩6页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

本文格式为Word版,下载可任意编辑——CATIACAA二次开发详细教程(5)添加一个点CATIACAA二次开发详细教程

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

在创立任何几何对象之前,必需在激活的函数命令中添加以下代码,:CATFrmEditor*pEditor=CATFrmEditor::GetCurrentEditor();if(pEditor==NULL){

printf(\}

CATDocument*pDoc=pEditor->GetDocument();CATIContainerOfDocument_varspConODocs=pDoc;CATIContainer*pSpecContainer=NULL;

HRESULThr=spConODocs->GetSpecContainer(pSpecContainer);if(spConODocs==NULL_var){

printf(\}

以上代码的主要功能是获取editor,thedocumentandthecontainer。CATIGSMFactory_varspGSMFactory=NULL_var;CATIPrtFactory_varspPrtFactory=NULL_var;CATICkeParmFactory_varspParmFactory=NULL_var;spGSMFactory=pSpecContainer;spPrtFactory=pSpecContainer;spParmFactory=pSpecContainer;

以上代码设置工厂,在这基础上你才可以造型,GSMFactory用于创立底层的几何对象譬如点、线等。PrtFactory包含创立孔特征、拉伸特征实体等函数。ParmFactory包含设定参数的函数。

在以上的基础上可以创立点了,步骤如下:(1)创立一个三维数组(x,y,z)定义点坐标。doubleCoords[3];Coords[0]=0;Coords[1]=0;Coords[2]=0;

(2)创立一个CATIGSMPoint并将其转换为CATISpecObject

CATIGSMPoint_varspPoint1=spGSMFactory->CreatePoint(Coords);//Createsapoint

30

CATIACAA二次开发详细教程

CATISpecObject_varspSpecPoint1=spPoint1;//CaststhepointasaCATISpecObject

(3)为了在CATIA显示你创立的点,必需将其添加到视图中。spSpecPoint1->Update();

CATIGSMProceduralView_varspPntObj=spSpecPoint1;spPntObj->InsertInProceduralView();所有的源代码如下://.

//

CATStatusChangeRCMyCommand::Activate(CATCommand*iFromClient,CATNotification*iEvtDat)

{

CATFrmEditor*pEditor=CATFrmEditor::GetCurrentEditor();

if(pEditor==NULL){

printf(\r\

}

CATDocument*pDoc=pEditor->GetDocument();CATIContainerOfDocument_varspConODocs=pDoc;CATIContainer*pSpecContainer=NULL;

HRESULThr=spConODocs->GetSpecContainer(pSpecContainer);

if(spConODocs==NULL_var){

printf(\ofdocuments\

}

CATIGSMFactory_varspGSMFactory=NULL_var;CATIPrtFactory_varspPrtFactory=NULL_var;CATICkeParmFactory_varspParmFactory=NULL_var;spGSMFactory=pSpecContainer;spPrtFactory=pSpecContainer;spParmFactory=pSpecContainer;

31

CATIACAA二次开发详细教程

doubleCoords[3];Coords[0]=0;Coords[1]=0;Coords[2]=0;

CATIGSMPoint_varspPoint1=spGSMFactory->CreatePoint(Coords);//Createsapoint

CATISpecObject_varspSpecPoint1=spPoint1;//CaststhepointasaCATISpecObject

spSpecPoint1->Update();

CATIGSMProceduralView_varspPntObj=spSpecPoint1;

spPntObj->InsertInProceduralView();

return(CATStatusChangeRCCompleted);}

CATIACAA二次开发详细教程(6)创立一条线

初始的设定请参考上一讲《CATIACAA二次开发详细教程(5)添加一个点》。在此基础上,创立线的步骤如下:

1)创立两个点并将其转换为CATISpecObjects。doubleCoords[3];Coords[0]=0;Coords[1]=0;Coords[2]=0;

CATIGSMPoint_varspPoint1=spGSMFactory->CreatePoint(Coords);CATISpecObject_varspSpecPoint1=

spPoint1;

Coords[0]=8;Coords[1]=6;Coords[2]=7;

CATIGSMPoint_varspPoint2=spGSMFactory->CreatePoint(Coords);CATISpecObject_varspSpecPoint2=spPoint2;

32

CATIACAA二次开发详细教程

2)利用创立的点创立一条线,并将其转换为CATISpecObjectCATISpecObject_varspSupport=NULL_var;

CATIGSMLinePtPt_varspLine1=spGSMFactory->CreateLine(spSpecPoint1,spSpecPoint2,spSupport);

CATISpecObject_varspSpecLine1=spLine1;3)更新创立的线,并将其添加到视图中。spSpecLine1->Update();

CATIGSMProceduralView_varspCurObj=spLine1;spCurObj->InsertInProceduralView();

CATIACAA二次开发详细教程(7)创立草图Sketch

有两种方式可以创立草图:1)通过参考平面创立

首先获取一个CATIPrtPart变量:

CATIPrtPart_varspPart(pIPrtContOnDocument->GetPart());pIPrtContOnDocument->Release();

有了CATIPrtPart变量就可以利用其方法GetReferencePlanes(),获取参考平面

CATLISTV(CATISpecObject_var)spRefPlanes=spPart->GetReferencePlanes();

然后创立XYplane(spRefPlanes[1])

CATISketchFactory_varspSketchFactory(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进行创立。定义原点和方向:

doubleorigin[3]={0.0,0.0,10.0};doublex_dir[3]={1.0,0.0,0.0};

33

CATIACAA二次开发详细教程

doubley_dir[3]={0.0,1.0,0.0};

CATISketchFactory_varspSketchFactory(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();

CATIACAA二次开发详细教程(8)草图上创立几何图形

在上一节的基础上,开始创立草图。首先创立草图工厂:CATI2DWFFactory_varsketch2DFactory(spSketch);下面创立点:

CATI2DPoint_varspPt_bottom_left,spPt_bottom_right,spPt_top_right,spPt_top_left;

doublept_bottom_left[2]={10.,10.};doublept_bottom_right[2]={50.,10.};doublept_top_right[2]={50.,50.};doublept_top_left[2]={10.,50.};

spPt_bottom_left=sketch2DFactory->CreatePoint(pt_bottom_left);spPt_bottom_right=sketch2DFactory->CreatePoint(pt_bottom_right);spPt_top_right=sketch2DFactory->CreatePoint(pt_top_right);spPt_top_left=sketch2DFactory->CreatePoint(pt_top_left);开始创立线:

CATI2DLine_varspLine1,spLine2,spLine3,spLine4;spLine1=

sketch2DFactory->CreateLine(pt_bottom_left,pt_bottom_right);

spLine2=

sketch2DFactory->CreateLine(pt_bottom_right,pt_top_right);

spLine3=sketch2DFactory->CreateLine(pt_top_right,pt_top_left);spLine4=sketch2DFactory->CreateLine(pt_top_left,pt_bottom_left);将线连接起来:

CATI2DCurve_varspCurve1(spLine1);

34

CreateAssemble(joincurves,Mergedist,FALSE);

CATISpecObject_varspCurveAssy=CurveAssy;

spCurveAssy->Update();

CATIGSMProceduralView_varspCurObj=Curveassembly;

36

CATIACAA二次开发详细教程

spCurObj->InsertInProceduralView();

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

一、创立(Createthenewdocument)

CATDocument*pDoc=NULL;

rc=CATDocumentServices::New(\if(NULL!=pDoc){

coutGetDocument();if(NULL!=pDoc){

coutQueryInterface(IID_CATInit,(void**)if(FAILED(rc)){

coutGetRootContainer(idCATIContainer);

if(NULL==piRootContainer){

coutCATIACAA二次开发详细教程

edasasecondparameter.Inthisusecase,wepassthestoragepathnameanddocumentnameasanargumenttotheprogram.

5.2保存

rc=CATDocumentServices::Save(*pDoc);if(SUCCEEDED(rc)){

cout〞所有程序〞–>“CATIAP3〞–>“Tools〞–>〞EnvironmentEditorV5R18〞

1.点击“确定〞。

42

CATIACAA二次开发详细教程

1.选择〞

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论