CATIA二次开发CAA技术基础之零件设计说明docx.docx
- 文档编号:11253573
- 上传时间:2023-02-26
- 格式:DOCX
- 页数:27
- 大小:22.96KB
CATIA二次开发CAA技术基础之零件设计说明docx.docx
《CATIA二次开发CAA技术基础之零件设计说明docx.docx》由会员分享,可在线阅读,更多相关《CATIA二次开发CAA技术基础之零件设计说明docx.docx(27页珍藏版)》请在冰豆网上搜索。
CATIA二次开发CAA技术基础之零件设计说明docx
第五章零件设计
5.1零件设计环境
图5.1零件设计环境
零件设计环境中,MyPart1中包含参考平面(包括XY平面、YZ平面、ZX平面)、轴系、
参数、几何图形集、有序几何图形集、零件几何体、几何体、集合中的几何体等节点。
几何图形集是无序建模,一般全曲面建模就是他比较管用;有序几何图形集,他里面可以
包含集合中的几何体,几何图形集,几何特征,但建模方式是有序的;几何体是直接插入零件
环境下,他里面可以包含几何图形集,有序几何图形,几何特征,但建模方式是有序的;集合
中的几何体在插入前会询问用户,他可以放在树的根目录下也可以放在有序几何图形集里面,
...
还可以在插入的同时把有序几何图形集里的特征集合到(集合中的几何体)里面。
5.2零件设计接口介绍
5.2.1操纵零件的一般步骤
...
图5.2操纵零件的主要接口及步骤
5.2.2获得CATIPrtPart
参考代码如下:
CATIPrtContainer_varspPrtContainer=spContainer;
CATIPrtPart_varspPrtPart=spPrtContainer->GetPart();
5.2.3获得零件下所有节点
方法一:
利用CATIDescendants接口
CATIDescendants_varspDescendantsOnPart=spPrtPart;
CATListValCATISpecObject_varspSpecObjects;
piDescendantsOnPart->GetAllChildren("CATISpecObject",spSpecObjects);
方法二:
利用CATContainer中的ListMembersHere方法
SEQUENCE(CATBaseUnknown_ptr)ListObj;
longNbObj=piRootContainer->ListMembersHere("CATISpecObject",ListObj);
for(intj=0;j {} 注意: "CATISpecObject"表示将所有的节点列出,如果想要只列出某种元素,可以将该 参数设置为相应的接口,例如"CATPoint"表示所有的点。 5.2.4获得参考平面 参考平面包括XY平面、YZ平面、ZX平面,参考代码如下: CATListValCATISpecObject_varspReferencePlanes; spReferencePlanes=spPrtPart->GetReferencePlanes(); 注意: spReferencePlanes为包含三个元素的数组,数组元素依次为xy平面,yz平面 和zx平 面。 如果要使用yz平面,则参考代码如下: CATISpecObject_varspyzPlane=spReferencePlanes[2]; 5.2.5获得轴系 参考代码如下: CATIMf3DAxisSystemManager_varspAxisSystem=NULL_var; spPrtPart->QueryInterface(IID_CATIMf3DAxisSystemManager,(void**)&spAxisSystem); ... //得到的所有轴系 CATLISTV(CATIMf3DAxisSystem_var)oAxisSystemList; spAxisSystem->GetAxisSystems(oAxisSystemList); 5.2.6获得参数 方法一: 利用CATIDescendants接口 CATIDescendants_varspDescendantsOnPart=spPrtPart; CATListValCATISpecObject_varspSpecObjects; piDescendantsOnPart->GetAllChildren("CATICkeParm",spSpecObjects); 方法二: 利用CATIParmPublisher中接口 CATIParmPublisher_varspParmPublisher=spPrtPart; CATListValCATISpecObject_varListFound; spParmPublisher->GetAllChildren("CATICkeParm",ListFound); 方法三: 利用CATContainer中的ListMembersHere方法 SEQUENCE(CATBaseUnknown_ptr)ListObj; longNbObj=spContainer->ListMembersHere("CATICkeParm",ListObj); for(intj=0;j { CATIAlias_varspAlias=ListObj[j]; cout< } 5.2.7获得几何图形集等节点 该节主要介绍获得几何图形集、有序几何图形集、零件几何体、几何体、集合中的几何体 等节点的方法,主要方法流程图如图5.3所示。 ... 获得CATIPrtPart 获得CATIPartRequest GetAllBodies GetSurfBodiesGetSolidBodies GetMainBody 几何图形集有序几何图形集零件几何体集合中几何体 的几何体 CATIMmiNonOrderedGeometricalSetCATIMmiOrderedGeometricalSet CATIGSMToolCATIMechanicalTool 获得CATIBodyRequest CATBody 图5.3流程图 例1: 获得零件中的所有几何体的代码如下。 CATIPartRequest*pIPartRequest=NULL; HRESULTrc=spPart->QueryInterface(IID_CATIPartRequest, (void**)&pIPartRequest); if(SUCCEEDED(rc)) { CATLISTV(CATBaseUnknow_var)ListBodies;//所有几何体 CATUnicodeStringViewContext="MfDefault3DView"; rc=pIPartRequest->GetSolidBodies(ViewContext,ListBodies); } 例2: 获得零件中的所有有序几何图形集的代码如下。 CATIDescendants_varspDescendantsOnPart=spPrtPart; CATListValCATISpecObject_varspSpecOGSs;//所有有序几何图形集 piDescendantsOnPart->GetAllChildren("CATIMmiOrderedGeometricalSet",spSpecOGSs); 例3: 获得零件几何体的代码如下。 CATBaseUnknow_varspMainBody;//零件几何体 ... pIPartRequest->GetMainBody(ViewContext,spMainBody); 例4: 获得CATBody的代码如下。 CATIBodyRequest*pIBodyRequest=NULL; spMainBody->QueryInterface(IID_CATIBodyRequest,(void**)&pIBodyRequest); CATLISTV(CATBaseUnknown_var)ListResult; pIBodyRequest->GetResults("",ListResult); CATIGeometricalElement*pIGeometricalElement=NULL; for(inti=1;i<=ListResult.Size();i++) { CATBaseUnknown_varspResult=ListResult[i]; spResult->QueryInterface(IID_CATIGeometricalElement,(void**)&pIGeometricalElement ); CATBody_varspBodyResult=pIGeometricalElement->GetBodyResult(); } 5.2.8创建轴系 //首先初始化工厂 CATIMf3DAxisSystemFactory*pIMf3DAxisSystemFactoryOnFeatCont=spContainer; CATMathPointOrigin(150.0,.0,.0); CATMathVectorX(1.0,.0,.0); CATMathVectorY(0.0,1.0,.0); CATIMf3DAxisSystem_varNewAxisSystemStd;//创建的轴系pIMf3DAxisSystemFactoryOnFeatCont->CreateAxisSystem(Origin,X,Y,NewAxisSystemStd); //对轴系的X、Y方向进行修改 NewAxisSystemStd->SetAxisDirection(CATAxisSystemXNumber,pVectorX); NewAxisSystemStd->SetAxisDirection(CATAxisSystemYNumber,pVectorY); 5.2.9创建参数和公式 1.创建参数 //初始化CATICkeParmFactory工厂 CATICkeParmFactory_varspParmFactory=spContainer; CATICkeParm_varspParam1=spParmFactory->CreateLength("Base",0.1); CATICkeParm_varspParam2=spParmFactory->CreateLength("Width",0.15);//长度单位为 米 ... CATICkeParm_varspParam3=spParmFactory->CreateLength("Height",0.2);//创建长度参 数 ... //CATIParmPublisher与CATICkeFunctionFactory功能为将所有参数显示在结构树中 CATIParmPublisher_varspParmPublisher=NULL_var; CATICkeFunctionFactory_varspFuncFactory=CATCkeGlobalFunctions: : GetFunctionFactor y(); spParmPublisher= spFuncFactory->GetCurrentSet(CATICkeFunctionFactory: : Parameter,spPrtPart,CATCke: : Tru e); spParmPublisher.Append(spParam1); spParmPublisher.Append(spParam2); spParmPublisher.Append(spParam3); 2.创建公式 //创建参数列表 CATCkeListOfParmpList; pList->Append(spParam1); pList->Append(spParam2); pList->Append(spParam3); //创建公式Height=Width+Base CATICkeRelation_varspFormula1=spParmFactory->CreateFormula("Formula","","", spParam3,pList,"Width+Base",spParmPublisher,CATCke: : True); spFuncFactory->AddToCurrentRelationSet(spFormula1,spParmPublisher); //修改参数进行测试 spParam1->Valuate(0.5); 5.2.10创建几何图形集等节点 //初始化CATIMechanicalRootFactory工厂 CATIMechanicalRootFactory_varspMechanicalRootFactory=spContainer; //创建几何图形集 virtualHRESULTCreateGeometricalSet(constCATUnicodeString&iUserName, constCATISpecObject_var&iDestination, CATISpecObject_var&oGeomSet, intiPosition=-1)=0; 函数说明如下表5.1所示: ... 表5.1 函数说明 iDestination 为零件节点iDestination 为其他节点 iPosition = -1 几何图形集位于零件最后 几何图形集与 iDestination 在同一父节 点 iPosition = 0 几何图形集位于零件最后 几何图形集位于 iDestination 中的最后 几何图形集位于零件中 几何图形集位 0 <= iDestinatio +1处 于iDestination n 的大小 iPosition 中的 Otherwise E_FAIL E_FAIL //创建有序的几何图形集 virtual HRESULTCreateOrderedGeometricalSet (const CATUnicodeString& iUserName, constCATISpecObject_var&iDestination, CATISpecObject_var&oOrderedGeomSet, intiPosition=-1)=0; //创建几何体 virtualCATISpecObject_varCreatePRTTool(constCATUnicodeString&iUserName, constCATISpecObject_var&iDestination); virtualCATISpecObject_varCreatePRTTool(constCATUnicodeString&iUserName, constCATISpecObject_var&iDestination intiPosition=-1); 5.2.11创建实体特征 实体特征主要包括凸台、槽、旋转体、孔、盒体、倒圆、倒角和厚曲面等特征,创建实体 特征采用CATIPrtFactory工厂中的方法,相应的方法如下表所示。 表5.2创建实体特征的方法 目标方法 凸台CreatePad 槽CreatePocket 旋转体CreateRotate 孔CreateHole 盒体CreateShell 倒圆CreateFillet 倒角CreateChamfer 厚曲面CreateThickness ... 现举创建孔的例子如下: 1.常用的创建孔的方法包括三种,依次如下。 publicvirtualCATISpecObject_varCreateHole(constCATISpecObject_vari hSurface, constCATISpecObject_varihDirection)=0 参数介绍: ihSurface指支持孔的平面或曲面;ihDirection指孔的特征方向,特征方向可用 CATIGSMFactory中的CreateDirection创建,孔方向若为NULL_var,则按照曲面的法向创建孔。 publicvirtualCATISpecObject_varCreateHole(constCATISpecObject_vari hPoint, constCATISpecObject_varihSurface, constCATISpecObject_varihDirection, constintIsPointOnSurface)= 0 参数介绍: ihPoint指在支持面上的特征点;ihSurface指支持孔的平面或曲面;ihDirection 指孔的特征方向,孔方向若为NULL_var,则按照曲面的法向创建孔;IsPointOnSurface的值如 果为0,说明ihPoint不在ihSurface上,若为0,则说明ihPoint在ihSurface上。 public virtual CATISpecObject_var CreateHole( constCATMathPoint iMathPo int, const CATISpecObject_varihSurface, const CATISpecObject_varihDirection, const int IsPointOnSurface) =0 参数介绍: iMathPoin指在支持面上的数学点;ihSurface指支持孔的平面或曲面;ihDirection 指孔的方向,孔方向若为NULL_var,则按照曲面的法向创建孔;IsPointOnSurface的值如果为 0,说明ihPoint不在ihSurface上,若为0,则说明ihPoint在ihSurface上。 2.设置孔的参数 CATISpecObject_varspHole=spPrtFactory->CreateHole(); CATINewHole_varspNewHole=spHole; spNewHole->SetHoleType (1);//设置孔类型为简单孔 spNewHole->SetBottomType (1);//设置孔底面类型为平底 spNewHole->SetDiameter(5)//设置直径 spNewHole->SetLimit (1)//设置为盲孔 CATIHoleLimit_varspHoleLimit=spHole; ... spHoleLimit->SetOffset(5);//设置孔的深度 3.将孔添加在结构树中 ... spHole->Update(); CATIGSMProceduralView_varispProcView=spHole; if(NULL_var! =ispProcView){HResultrc=ispProcView->InsertInProcedura lView();} 5.2.12创建零件设计表 //初始化CATICkeParmFactory工厂 CATICkeParmFactory_varspParmFactory=spContainer; //创建设计表的函数如下 CATIDesignTable_varCreateDesignTable(constCATUnicodeString&iRelationNam e, constCATUnicodeString&iComment, constCATUnicodeString&iFilePath, intorientation=1, intsheetWithoutFile=0); 函数说明: iRelationName 为设计表的名字,iComment 为设计表的说明,iFilePath 为创 建 表的路径。 创建零件族的步骤如下: 1.创建参数 CATICkeParm_var spPp1 = spFact->CreateInteger ("Column1",0); CATICkeParm_var spPp2 = spFact->CreateReal ("r",0.0); CATICkeParm_var spPp3 = spFact->CreateString ("s",""); CATICkeParm_var spPp4 = spFact->CreateBoolean ("b",CATCke: : True); CATICkeParm_var spPp5 = spFact->CreateLength ("l",0); CATICkeParm_var spPp6 = spFact->CreateAngle ("a",0); 2.将参数显示在结构树上 CATIPrtContainer_varspPrtCont=spContainer;CATIParmPublisher_varspPubroot=spPrtCont->GetPart(); CATICkeFunctionFactory_varfact=CATCkeGlobalFunctions: : GetFunctionFactory();CATISpecObject_varspParameterSet=NULL_var;spParameterSet= fact->GetCurrentSet(C
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- CATIA 二次开发 CAA 技术 基础 零件 设计 说明 docx