版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、.第五章 零件設計5.1 零件設計環(huán)境圖 5.1 零件設計環(huán)境零件設計環(huán)境中, MyPart1 中包含參考平面(包括XY 平面、 YZ 平面、 ZX 平面)、軸系、參數(shù)、幾何圖形集、有序幾何圖形集、零件幾何體、幾何體、集合中的幾何體等節(jié)點。幾何圖形集是無序建模,一般全曲面建模就是他比較管用;有序幾何圖形集,他里面可以包含集合中的幾何體,幾何圖形集,幾何特征,但建模方式是有序的;幾何體是直接插入零件環(huán)境下,他里面可以包含幾何圖形集,有序幾何圖形,幾何特征,但建模方式是有序的;集合中的幾何體在插入前會詢問用戶,他可以放在樹的根目錄下也可以放在有序幾何圖形集里面,.還可以在插入的同時把有序幾何圖形集
2、里的特征集合到(集合中的幾何體)里面。5.2 零件設計接口介紹5.2.1 操縱零件的一般步驟.圖 5.2 操縱零件的主要接口及步驟5.2.2 獲得 CATIPrtPart參考代碼如下:CATIPrtContainer_varspPrtContainer = spContainer;CATIPrtPart_varspPrtPart = spPrtContainer -GetPart();5.2.3 獲得零件下所有節(jié)點方法一:利用 CATIDescendants接口CATIDescendants_var spDescendantsOnPart= spPrtPart; CATListV alCATI
3、SpecObject_var spSpecObjects; piDescendantsOnPart-GetAllChildren(CA TISpecObject, spSpecObjects); 方法二:利用 CATContainer 中的 ListMembersHere 方法 SEQUENCE(CA TBaseUnknown_ptr) ListObj;long NbObj = piRootContainer-ListMembersHere(CA TISpecObject,ListObj); for(int j=0;jGetReferencePlanes();注意: spReferencePl
4、anes為包含三個元素的數(shù)組,數(shù)組元素依次為 xy 平面 , yz 平面和 zx 平面。如果要使用 yz 平面,則參考代碼如下:CATISpecObject_varspyzPlane= spReferencePlanes2;5.2.5 獲得軸系參考代碼如下:CATIMf3DAxisSystemManager_var spAxisSystem = NULL_var; spPrtPart-QueryInterface(IID_ CATIMf3DAxisSystemManager,(void*)& spAxisSystem);./得到的所有軸系CATLISTV(CA TIMf3DAxisSystem
5、_var) oAxisSystemList;spAxisSystem -GetAxisSystems(oAxisSystemList);5.2.6 獲得參數(shù)方法一:利用 CATIDescendants 接口CATIDescendants_var spDescendantsOnPart= spPrtPart; CATListValCATISpecObject_var spSpecObjects; piDescendantsOnPart-GetAllChildren(CA TICkeParm, spSpecObjects);方法二:利用 CATIParmPublisher 中接口CATIParmP
6、ublisher_var spParmPublisher= spPrtPart; CATListValCATISpecObject_var ListFound; spParmPublisher-GetAllChildren(CA TICkeParm,ListFound); 方法三:利用 CATContainer 中的 ListMembersHere 方法 SEQUENCE(CA TBaseUnknown_ptr) ListObj;long NbObj = spContainer -ListMembersHere(CA TICkeParm,ListObj); for(int j=0;jNbObj
7、;j+)/ 注意從 0 開始 CATIAlias_var spAlias = ListObjj;coutGetAlias()QueryInterface(IID_CA TIPartRequest,(void*)&pIPartRequest );if ( SUCCEEDED(rc) )CATLISTV(CA TBaseUnknow_var) ListBodies;/ 所有幾何體CATUnicodeString ViewContext =MfDefault3DView;rc = pIPartRequest-GetSolidBodies(ViewContext,ListBodies);例 2:獲得零
8、件中的所有有序幾何圖形集的代碼如下。CATIDescendants_var spDescendantsOnPart= spPrtPart; CATListV alCATISpecObject_var spSpecOGSs;/所有有序幾何圖形集 piDescendantsOnPart-GetAllChildren(CA TIMmiOrderedGeometricalSet, spSpecOGSs);例 3:獲得零件幾何體的代碼如下。CATBaseUnknow_var spMainBody;/ 零件幾何體.pIPartRequest-GetMainBody(ViewContext,spMainBo
9、dy);例 4:獲得 CATBody 的代碼如下。CATIBodyRequest*pIBodyRequest= NULL; spMainBody -QueryInterface(IID_CA TIBodyRequest,(void*) &pIBodyRequest); CATLISTV(CA TBaseUnknown_var) ListResult ; pIBodyRequest-GetResults(,ListResult); CATIGeometricalElement * pIGeometricalElement = NULL ;for (int i=1 ; iQueryInterfac
10、e(IID_CA TIGeometricalElement ,(void*) &pIGeometricalElement );CATBody_var spBodyResult = pIGeometricalElement-GetBodyResult();5.2.8 創(chuàng)建軸系/首先初始化工廠CATIMf3DAxisSystemFactory * pIMf3DAxisSystemFactoryOnFeatCont = spContainer;CATMathPoint Origin (150.0,.0,.0);CATMathVectorX (1.0,.0,.0);CATMathVectorY (0.
11、0,1.0,.0);CATIMf3DAxisSystem_var NewAxisSystemStd;/ 創(chuàng)建的軸系 pIMf3DAxisSystemFactoryOnFeatCont-CreateAxisSystem(Origin,X,Y ,NewAxisSystemStd); /對軸系的 X、 Y 方向進行修改NewAxisSystemStd-SetAxisDirection(CA TAxisSystemXNumber, pVectorX); NewAxisSystemStd-SetAxisDirection(CA TAxisSystemYNumber, pVectorY);5.2.9 創(chuàng)建
12、參數(shù)和公式1創(chuàng)建參數(shù)/初始化 CATICkeParmFactory 工廠CATICkeParmFactory_var spParmFactory= spContainer;CATICkeParm_var spParam1= spParmFactory-CreateLength(Base,0.1);CATICkeParm_var spParam2= spParmFactory-CreateLength(Width,0.15);/ 長度單位為米 CATICkeParm_var spParam3= spParmFactory-CreateLength(Height,0.2);/創(chuàng)建長度參數(shù)./ CA
13、TIParmPublisher 與 CATICkeFunctionFactory 功能為將所有參數(shù)顯示在結構樹中CATIParmPublisher_varspParmPublisher= NULL_var;CATICkeFunctionFactory_var spFuncFactory=CATCkeGlobalFunctions:GetFunctionFactory();spParmPublisher=spFuncFactory-GetCurrentSet(CATICkeFunctionFactory:Parameter,spPrtPart,CATCke:True);spParmPublish
14、er.Append(spParam1);spParmPublisher.Append(spParam2);spParmPublisher.Append(spParam3);2創(chuàng)建公式/創(chuàng)建參數(shù)列表CATCkeListOfParm pList;pList-Append (spParam1);pList-Append (spParam2);pList-Append (spParam3);/創(chuàng)建公式 Height = Width + BaseCATICkeRelation_var spFormula1 = spParmFactory-CreateFormula(Formula, spParam3,p
15、List, Width+Base, spParmPublisher,CATCke:True);spFuncFactory-AddToCurrentRelationSet(spFormula1, spParmPublisher);/修改參數(shù)進行測試spParam1-Valuate(0.5);5.2.10 創(chuàng)建幾何圖形集等節(jié)點/初始化 CATIMechanicalRootFactory 工廠CATIMechanicalRootFactory_var spMechanicalRootFactory = spContainer;/創(chuàng)建幾何圖形集virtual HRESULT CreateGeometr
16、icalSet(constCATUnicodeString& iUserName,const CATISpecObject_var& iDestination,CATISpecObject_var& oGeomSet,int iPosition=-1 ) = 0 ;函數(shù)說明如下表 5.1 所示:.iDestination 為零件節(jié)點iDestination 為其他節(jié)點iPosition = -1幾何圖形集位于零件最后幾何圖形集與 iDestination 在同一父節(jié)點下,且在 iDestination 節(jié)點后表 5.1 函數(shù)說明iPosition = 0幾何圖形集位于零件最后幾何圖形集位于 i
17、Destination 中的最后0 iPosition CreateHole();CATINewHole_var spNewHole= spHole;spNewHole- SetHoleType(1);/設置孔類型為簡單孔spNewHole-SetBottomType(1) ;/設置孔底面類型為平底spNewHole-SetDiameter(5)/ 設置直徑spNewHole-SetLimit(1)/ 設置為盲孔CATIHoleLimit_var spHoleLimit = spHole;spHoleLimit -SetOffset(5);/設置孔的深度3將孔添加在結構樹中.spHole -U
18、pdate();CATIGSMProceduralView_var ispProcView = spHole;if (NULL_var != ispProcView ) HResult rc = ispProcView -InsertInProceduralView();5.2.12 創(chuàng)建零件設計表/初始化 CATICkeParmFactory 工廠CATICkeParmFactory_var spParmFactory= spContainer;/創(chuàng)建設計表的函數(shù)如下CATIDesignTable_varCreateDesignTable(const CATUnicodeString&iRe
19、lationName,const CATUnicodeString&iComment,const CATUnicodeString&i,intorientation = 1,intsheetWithoutFile = 0 );函數(shù)說明: iRelationName 為設計表的名字, iComment 為設計表的說明, i 為創(chuàng)建表的路徑。創(chuàng)建零件族的步驟如下:1.創(chuàng)建參數(shù)CATICkeParm_var spPp1= spFact-CreateInteger(Column1,0);CATICkeParm_var spPp2= spFact-CreateReal(r,0.0);CATICkePar
20、m_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.將參數(shù)顯示在結構樹上CATIPrtContainer_var spPrtCont = spContainer; CATIParmPublisher_var spPubroot= spPrtCont-GetPart(
21、); CATICkeFunctionFactory_var fact = CATCkeGlobalFunctions:GetFunctionFactory(); CATISpecObject_var spParameterSet= NULL_var; spParameterSet=fact-GetCurrentSet(CATICkeFunctionFactory:Parameter,spPubroot,CATCke:True);CATIParmPublisher_var spParmPublisher= spParameterSet;spParmPublisher-Append(spPp1);
22、.spParmPublisher-Append(spPp2);spParmPublisher-Append(spPp3);spParmPublisher-Append(spPp4);spParmPublisher-Append(spPp5);spParmPublisher-Append(spPp6);3.創(chuàng)建設計表CATIDesignTable_var spDesignTable= spFact-CreateDesignTable();4.將設計表顯示在結構樹上CATISpecObject_var spRelationSet= fact -GetCurrentSet( CATICkeFunct
23、ionFactory:Relation,spPubroot,CATCke:True);spParmPublisher= spRelationSet;spParmPublisher-Append(spDesign);5.將參數(shù)與設計表關聯(lián),注意參數(shù)名字與設計表的列參數(shù)名字一定要相同/ 參數(shù)列表CATLISTV(CA TBaseUnknown_var) list;list.Append(spPp1);spDesign-AutomaticAssociations(spContainer, NULL_var, &list);/ 添加關聯(lián)spDesign-AddAssociation(Column2,
24、spPp2);spDesign-AddAssociation(Column3, spPp3);spDesign-AddAssociation(Column4, spPp4);spDesign-AddAssociation(Column5, spPp5);6設置配置spDesign-SetCurrentConfiguration(1);5.2.13 創(chuàng)建草圖 Sketch有兩種方式可以創(chuàng)建草圖:1.通過參考平面創(chuàng)建/獲得參考平面CATLISTV(CA TISpecObject_var) spRefPlanes= spPart-GetReferencePlanes();/初始化草圖工廠CATISk
25、etchFactory_var spSketchFactory(spContainer);./在 XY plane 上創(chuàng)建草圖CATISketch_var spSketch= spSketchFactory-CreateSketch(spRefPlanes1);2.通過原點和兩個矢量方向該方法通過定義一個原點和兩個方向pH 、pV 進行創(chuàng)建。定義原點和方向:double pOrigin3=0,0,10;double pH3=1,0,0;double pV3=0,1,0;CATISketchFactory_varspSketchFactory(spContainer);CATISketch_va
26、r spSketch = spSketchFactory-CreateSketch(pOrigin, pH, pV);5.2.14 創(chuàng)建草圖幾何/首先聲明編輯草圖spSketch-OpenEdition();CATI2DWFFactory_var sp2DFactory(spSketch);/下面創(chuàng)建點CATI2DPoint_var spPt_bottom_left, spPt_bottom_right, spPt_top_right, spPt_top_left;double pt_bottom_left2= 10, 10;double pt_bottom_right2= 50, 10;do
27、uble pt_top_right2= 50, 50;double pt_top_left2= 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);/開始創(chuàng)
28、建線CATI2DLine_var spLine1, 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_le
29、ft,pt_bottom_left); /將線的首尾連接起來.CATI2DCurve_var spCurve1(spLine1);CATI2DCurve_var spCurve2(spLine2);CATI2DCurve_var spCurve3(spLine3);CATI2DCurve_var spCurve4(spLine4);spCurve1-SetStartPoint(spPt_bottom_left);spCurve1-SetEndPoint(spPt_bottom_right);spCurve2-SetStartPoint(spPt_bottom_right);spCurve2-S
30、etEndPoint(spPt_top_right);spCurve3-SetStartPoint(spPt_top_right);spCurve3-SetEndPoint(spPt_top_left);spCurve4-SetStartPoint(spPt_top_left);spCurve4-SetEndPoint(spPt_bottom_left);/然后退出草圖:spSketch-CloseEdition();5.2.15 創(chuàng)建草圖約束CATI2DConstraintFactory_var spConstraint2DFactory(spSketch);/定義 spLine1 為水平約
31、束spConstraint2DFactory-CreateConstraint( spLine1, NULL,NULL,NULL,NULL,NULL,NULL, Cst2DType_Horizontal, 0, 0 );/定義 spLine2 為垂直約束spConstraint2DFactory-CreateConstraint( spLine2, NULL,NULL,NULL,NULL,NULL,NULL, Cst2DType_Vertical, 0, 0 );/定義 spLine3 為水平約束spConstraint2DFactory-CreateConstraint( spLine3,
32、NULL,NULL,NULL,NULL,NULL,NULL, Cst2DType_Horizontal, 0, 0 );/定義 spLine4 為垂直約束spConstraint2DFactory-CreateConstraint( spLine4, NULL,NULL,NULL,NULL,NULL,NULL, Cst2DType_Vertical, 0, 0 );/定義 spLine2 的長度約束spConstraint2DFactory-CreateConstraint( spLine2, NULL, NULL, NULL, NULL, NULL, NULL, Cst2DType_Leng
33、th, 0, 0 );./定義 spLine2 與 spLine4 的距離約束spConstraint2DFactory-CreateConstraint( spLine2, NULL,spLine4, NULL,NULL,NULL,NULL, Cst2DType_Distance,0, 0 );/定義 spPt_bottom_left 與 X 軸的距離約束CATI2DAxis_var spSupport= NULL_var;spSketch-GetAbsolute2DAxis(spSupport);spConstraint2DFactory-CreateConstraint(spPt_bot
34、tom_left,NULL,spSupport-GetHDirection(), NULL, NULL, NULL, NULL,Cst2DType_Distance, 0, 0 );/定義 spPt_bottom_left 與 Y 軸的距離約束spConstraint2DFactory-CreateConstraint(spPt_bottom_left,NULL,spSupport-GetVDirection(), NULL, NULL, NULL, NULL,Cst2DType_Distance, 0, 0 );5.3 生成圓柱體實例5.3.1 本實例所實現(xiàn)的功能本實例主要實現(xiàn)創(chuàng)建圓柱的功能
35、,在對話框中直接輸入圓柱直徑和圓柱高度,點擊確定按鈕,在零件中自動創(chuàng)建相應直徑和高度的圓柱體,其界面如圖5.4 所示。圖 5.4 創(chuàng)建圓柱界面5.3.2 實現(xiàn)的步驟5.3.2.1獲得零件指針/ 獲得文件指針CATDocument * pDoc= NULL;CATFrmEditor * _pEditor = CATFrmEditor:GetCurrentEditor();pDoc = _pEditor-GetDocument();/ 這里得到了 PART 環(huán)境下的文檔指針 CATInit_var spInitOnDoc(pDoc);/ 得到零件根容器.CATIPrtContainer * piP
36、rtCont =(CATIPrtContainer*) spInitOnDoc-GetRootContainer(CA TIPrtContainer);/ 得到零件指針CATIPrtPart_var spPart= piPrtCont-GetPart();5.3.2.2創(chuàng)建草圖/初始化草圖工廠CATISketchFactory_var spSketchFactory(piPrtCont);/在 XY plane 上創(chuàng)建草圖CATISketch_var spSketch= spSketchFactory-CreateSketch(spRefPlanes1);5.3.2.3創(chuàng)建草圖幾何/首先聲明編輯草圖spSketch-OpenEdition();CATI2DWFFactory_var sp2DFactory(spSketch);/這里表示圓心點doubleiPoint2 = 0.,0.;/下面創(chuàng)建圓圈CATISpecObject_var spLine = spSketch-CreateCircle(iPoint,_Editor003-GetFloatV alue();CATI2DCurve_var spCurveOnLine(spLine);spCurveOnLine-GetStartPoint();spCurveOnLine-GetEndPoint();/
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年高職服裝款式設計(設計基礎)試題及答案
- 2026年化工分析(電化學分析技術)試題及答案
- 2025年高職(財務管理綜合實訓)投資管理實操試題及答案
- 2025年中職第三學年(防火墻技術)網(wǎng)絡安全防護測試題及答案
- 2025年中職工業(yè)互聯(lián)網(wǎng)技術(工業(yè)互聯(lián)網(wǎng)基礎)試題及答案
- 2025年中職第二學年(家政服務與管理)家庭膳食搭配實務測試題及答案
- 2025年中職(會計)成本核算綜合試題及答案
- 2025年大學第四學年(服裝設計與工程)服裝綜合設計試題及答案
- 2026年粉底銷售(客戶接待)試題及答案
- 2025年高職統(tǒng)計學(統(tǒng)計教育心理學案例分析)試題及答案
- 遺產分割協(xié)議書
- 京瓷哲學手冊樣本
- 形神拳動作名稱與圖解
- 博士生入學復試面試報告?zhèn)€人簡歷介紹含內容模板兩篇
- 食品工廠設計 課件 第二章 廠址選擇
- 2023年生產車間各類文件匯總
- WORD版A4橫版密封條打印模板(可編輯)
- 2013標致508使用說明書
- 中考滿分(合集15篇)
- 《大數(shù)據(jù)營銷》-課程教學大綱
- GB/T 18993.1-2020冷熱水用氯化聚氯乙烯(PVC-C)管道系統(tǒng)第1部分:總則
評論
0/150
提交評論