CATIA二次开发(CAA)技术基础之零件设计.pdf
《CATIA二次开发(CAA)技术基础之零件设计.pdf》由会员分享,可在线阅读,更多相关《CATIA二次开发(CAA)技术基础之零件设计.pdf(16页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、.第五章 零件设计 5.1 零件设计环境 图 5.1 零件设计环境 零件设计环境中,MyPart1 中包含参考平面(包括 XY 平面、YZ 平面、ZX 平 面)、轴 系、参数、几何图形集、有序几何图形集、零件几何体、几何体、集合中的几何体等节点。几何图形集是无序建模,一般全曲面建模就是他比较管用;有序几何图形集,他里面可以 包含集合中的几何体,几何图形集,几何特征,但建模方式是有序的;几何体是直接插入零件 环境下,他里面可以包含几何图形集,有序几何图形,几何特征,但建模方式是有序的;集合 中的几何体在插入前会询问用户,他可以放在树的根目录下也可以放在有序几何图形集里面,.还可以在插入的同时把有
2、序几何图形集里的特征集合到(集合中的几何体)里面。5.2 零件设计接口介绍 5.2.1 操纵零件的一般步骤 .图 5.2 操纵零件的主要接口及步骤 5.2.2 获得 CATIPrtPart 参考代码如下:CATIPrtContainer_var spPrtContainer=spContainer;CATIPrtPart_var spPrtPart=spPrtContainer-GetPart();5.2.3 获得零件下所有节点 方法一:利用 CATIDescendants 接口 CATIDescendants_var spDescendantsOnPart=spPrtPart;CATList
3、ValCATISpecObject_var spSpecObjects;piDescendantsOnPart-GetAllChildren(CATISpecObject,spSpecObjects);方法二:利用 CATContainer 中的 ListMembersHere 方法 SEQUENCE(CATBaseUnknown_ptr)ListObj;long NbObj=piRootContainer-ListMembersHere(CATISpecObject,ListObj);for(int j=0;jGetReferencePlanes();注意:spReferencePlanes
4、 为包含三个元素的数组,数组元素依次为 xy 平面,yz 平面和 zx 平 面。如果要使用 yz 平面,则参考代码如下:CATISpecObject_var spyzPlane=spReferencePlanes2;5.2.5 获得轴系 参考代码如下:CATIMf3DAxisSystemManager_var spAxisSystem=NULL_var;spPrtPart-QueryInterface(IID_ CATIMf3DAxisSystemManager,(void*)&spAxisSystem);./得到的所有轴系 CATLISTV(CATIMf3DAxisSystem_var)oA
5、xisSystemList;spAxisSystem-GetAxisSystems(oAxisSystemList);5.2.6 获得参数 方法一:利用 CATIDescendants 接口 CATIDescendants_var spDescendantsOnPart=spPrtPart;CATListValCATISpecObject_var spSpecObjects;piDescendantsOnPart-GetAllChildren(CATICkeParm,spSpecObjects);方法二:利用 CATIParmPublisher 中接口 CATIParmPublisher_va
6、r spParmPublisher=spPrtPart;CATListValCATISpecObject_var ListFound;spParmPublisher-GetAllChildren(CATICkeParm,ListFound);方法三:利用 CATContainer 中的 ListMembersHere 方法 SEQUENCE(CATBaseUnknown_ptr)ListObj;long NbObj=spContainer-ListMembersHere(CATICkeParm,ListObj);for(int j=0;jNbObj;j+)/注意从 0 开始 CATIAlias
7、_var spAlias=ListObjj;coutGetAlias()QueryInterface(IID_CATIPartRequest,(void*)&pIPartRequest);if(SUCCEEDED(rc)CATLISTV(CATBaseUnknow_var)ListBodies;/所有几何体 CATUnicodeString ViewContext=MfDefault3DView;rc=pIPartRequest-GetSolidBodies(ViewContext,ListBodies);例 2:获得零件中的所有有序几何图形集的代码如下。CATIDescendants_var
8、 spDescendantsOnPart=spPrtPart;CATListValCATISpecObject_var spSpecOGSs;/所有有序几何图形集 piDescendantsOnPart-GetAllChildren(CATIMmiOrderedGeometricalSet,spSpecOGSs);例 3:获得零件几何体的代码如下。CATBaseUnknow_var spMainBody;/零件几何体.pIPartRequest-GetMainBody(ViewContext,spMainBody);例 4:获得 CATBody 的代码如下。CATIBodyRequest*pI
9、BodyRequest=NULL;spMainBody-QueryInterface(IID_CATIBodyRequest,(void*)&pIBodyRequest);CATLISTV(CATBaseUnknown_var)ListResult;pIBodyRequest-GetResults(,ListResult);CATIGeometricalElement*pIGeometricalElement=NULL;for(int i=1;iQueryInterface(IID_CATIGeometricalElement,(void*)&pIGeometricalElement);CAT
10、Body_var spBodyResult=pIGeometricalElement-GetBodyResult();5.2.8 创建轴系 /首先初始化工厂 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;/创建的轴系 pIMf3DAxisSyst
11、emFactoryOnFeatCont-CreateAxisSystem(Origin,X,Y,NewAxisSystemStd);/对轴系的 X、Y 方向进行修改 NewAxisSystemStd-SetAxisDirection(CATAxisSystemXNumber,pVectorX);NewAxisSystemStd-SetAxisDirection(CATAxisSystemYNumber,pVectorY);5.2.9 创建参数和公式 1创建参数/初始化 CATICkeParmFactory 工厂 CATICkeParmFactory_var spParmFactory=spCo
12、ntainer;CATICkeParm_var spParam1=spParmFactory-CreateLength(Base,0.1);CATICkeParm_var spParam2=spParmFactory-CreateLength(Width,0.15);/长度单位为米 CATICkeParm_var spParam3=spParmFactory-CreateLength(Height,0.2);/创建长度参数./CATIParmPublisher 与 CATICkeFunctionFactory 功能为将所有参数显示在结构树中 CATIParmPublisher_var spPa
13、rmPublisher=NULL_var;CATICkeFunctionFactory_var spFuncFactory=CATCkeGlobalFunctions:GetFunctionFactory();spParmPublisher=spFuncFactory-GetCurrentSet(CATICkeFunctionFactory:Parameter,spPrtPart,CATCke:True);spParmPublisher.Append(spParam1);spParmPublisher.Append(spParam2);spParmPublisher.Append(spPara
14、m3);2创建公式/创建参数列表 CATCkeListOfParm pList;pList-Append(spParam1);pList-Append(spParam2);pList-Append(spParam3);/创建公式 Height=Width+Base CATICkeRelation_var spFormula1=spParmFactory-CreateFormula(Formula,spParam3,pList,Width+Base,spParmPublisher,CATCke:True);spFuncFactory-AddToCurrentRelationSet(spFormu
15、la1,spParmPublisher);/修改参数进行测试 spParam1-Valuate(0.5);5.2.10 创建几何图形集等节点 /初始化 CATIMechanicalRootFactory 工厂 CATIMechanicalRootFactory_var spMechanicalRootFactory=spContainer;/创建几何图形集 virtual HRESULT CreateGeometricalSet(const CATUnicodeString&iUserName,const CATISpecObject_var&iDestination,CATISpecObje
16、ct_var&oGeomSet,int iPosition=-1)=0;函数说明如下表 5.1 所示:.表 5.2 创建实体特征的方法 表 5.1 函数说明/创建有序的几何图形集 virtual HRESULT CreateOrderedGeometricalSet(const CATUnicodeString&iUserName,const CATISpecObject_var&iDestination,CATISpecObject_var&oOrderedGeomSet,int iPosition=-1)=0;/创建几何体 virtual CATISpecObject_var Create
17、PRTTool(const CATUnicodeString&iUserName,const CATISpecObject_var&iDestination);virtual CATISpecObject_var CreatePRTTool(const CATUnicodeString&iUserName,const CATISpecObject_var&iDestination int iPosition=-1);5.2.11 创建实体特征 实体特征主要包括凸台、槽、旋转体、孔、盒体、倒圆、倒角和厚曲面等特征,创建实体 特征采用 CATIPrtFactory 工厂中的方法,相应的方法如下表所
18、示。iDestination 为零件节点 iDestination 为其他节点 iPosition=-1 几何图形集位于零件最后 几何图形集与 iDestination 在同一父节点 下,且在 iDestination 节点后 iPosition=0 几何图形集位于零件最后 几何图形集位于 iDestination 中的最后 0 iPosition CreateHole();CATINewHole_var spNewHole=spHole;spNewHole-SetHoleType(1);/设置孔类型为简单孔 spNewHole-SetBottomType(1);/设置孔底面类型为平底 spN
19、ewHole-SetDiameter(5)/设置直径 spNewHole-SetLimit(1)/设置为盲孔 CATIHoleLimit_var spHoleLimit=spHole;spHoleLimit-SetOffset(5);/设置孔的深度 3将孔添加在结构树中.spHole-Update();CATIGSMProceduralView_var ispProcView=spHole;if(NULL_var!=ispProcView)HResult rc=ispProcView-InsertInProceduralView();5.2.12 创建零件设计表 /初始化 CATICkePar
20、mFactory 工厂 CATICkeParmFactory_var spParmFactory=spContainer;/创建设计表的函数如下 CATIDesignTable_var CreateDesignTable(const CATUnicodeString&iRelationName,const CATUnicodeString&iComment,const CATUnicodeString&i,int orientation=1,int sheetWithoutFile=0);函数说明:iRelationName 为设计表的名字,iComment 为设计表的说明,i 为创建 表的路
21、径。创建零件族的步骤如下: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
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- CATIA 二次开发 CAA 技术 基础 零件 设计
限制150内