杭祖權(quán)(北京航天光華電子技術(shù)有限公司,北京 100854)
?
基于Pro/E二次開發(fā)的自動(dòng)裝配技術(shù)
杭祖權(quán)
(北京航天光華電子技術(shù)有限公司,北京100854)
摘要對(duì)于企業(yè)的系列化產(chǎn)品來說,數(shù)量龐大的模型裝配工作是一個(gè)重復(fù)而煩瑣的過程。以Pro/E二次開發(fā)工具包Pro/Toolkit為基礎(chǔ),采用C語言編程,介紹了兩種常用的裝配約束的二次開發(fā)過程,從而實(shí)現(xiàn)了模型的自動(dòng)裝配,提高了產(chǎn)品設(shè)計(jì)效率。
關(guān)鍵詞Pro/E,Pro/Toolkit,二次開發(fā),自動(dòng)裝配
Pro/E是當(dāng)前航天、航空、工程機(jī)械等領(lǐng)域應(yīng)用最為廣泛的CAD/CAE/CAM一體化軟件之一,Pro/Toolkit是Pro/E自帶的二次開發(fā)工具包。企業(yè)可以根據(jù)自己的產(chǎn)品特點(diǎn),采用Pro/Toolkit編寫C或C++語言程序代碼,通過軟件開發(fā)平臺(tái),將生成的應(yīng)用程序無縫集成到Pro/E中,擴(kuò)展其功能。
由于企業(yè)系列化產(chǎn)品的零件模型數(shù)量龐大,裝配過程重復(fù)且煩瑣,裝配中多為“對(duì)齊”和“插入”兩種裝配約束,可以通過Pro/E二次開發(fā)實(shí)現(xiàn)零件模型的自動(dòng)裝配。本文介紹了“對(duì)齊”和“插入”等兩種常用的裝配約束的二次開發(fā)過程,按照其實(shí)際裝配的約束思想,以Pro/Toolkit函數(shù)庫(kù)為基礎(chǔ),編寫C語言程序代碼,采用VS2008進(jìn)行編譯和連接,創(chuàng)建了可以在Pro/E中運(yùn)行的動(dòng)態(tài)連接庫(kù)(DLL文件),以實(shí)現(xiàn)零件模型的自動(dòng)裝配。
1.1常用約束類型及完全約束集
在Pro/E零件模型裝配中,通常以用戶定義的一組約束集來表示兩個(gè)零件的相互約束關(guān)系,Pro/E中提供的約束有“配對(duì)”、“對(duì)齊”、“插入”、“坐標(biāo)系”、“相切”等約束類型,其中“對(duì)齊”和“插入”在企業(yè)的系列化產(chǎn)品模型裝配中最為常用,可組合成兩種常用的完全約束集,一種為三對(duì)面分別對(duì)齊的完全約束集,另一種為一對(duì)面對(duì)齊與軸孔插入結(jié)合的完全約束集。
三對(duì)面分別對(duì)齊的完全約束集是指在兩個(gè)裝配零部件模型中分別定義三個(gè)相互垂直的面,并將對(duì)應(yīng)的兩個(gè)面以對(duì)齊的方式進(jìn)行約束,形成包含三個(gè)“對(duì)齊”約束的一組完全約束集,如圖1(a)所示的平面“D_TOP_A1”、“D_ FRONT_A1”、“D_RIGHT1_A1”,圖1(b)所示的平面“A1_TOP_B1”、“A1_FRONT_B1”、“A1_RIGHT1_ B1”。在零件數(shù)量龐大的產(chǎn)品中,按照習(xí)慣更改平面名稱能夠提高工作效率并減少裝配中的錯(cuò)誤。
圖1 定義相互配合的零件的三對(duì)對(duì)應(yīng)平面
一對(duì)面對(duì)齊與軸孔插入結(jié)合的完全約束集是指兩個(gè)裝配零部件分別定義相互垂直的平面和圓孔(或中心軸),將對(duì)應(yīng)的平面“對(duì)齊”約束,對(duì)應(yīng)的軸孔曲面“插入”約束,形成一組完全約束集,如圖2(a)所示的面板平面“PLATENESURFALIGN”和圓周曲面“LEDINSERT”,圖2(b)所示的發(fā)光二極管平面“SURFALIGN”和圓周曲面“SURFINSERT”,曲面定義方法為對(duì)模型屬性中的名稱項(xiàng)進(jìn)行修改和添加。
圖2 定義相互配合的零件的對(duì)齊平面和插入曲面
1.2自動(dòng)裝配的實(shí)現(xiàn)
自動(dòng)裝配程序?qū)崿F(xiàn)的步驟及其所應(yīng)用的主要Pro/ Toolkit函數(shù)有:
(1)將零件添加到組件的初始位置,對(duì)應(yīng)函數(shù)ProAsmcompAssemble(ProAssembly owner_assembly,ProSolid component_model,ProMatrix init_pos,ProAsmcomp* feature),其中init_pos為4×4單位矩陣,表示元件的初始裝配位置;
(2)初始化約束數(shù)組,對(duì)應(yīng)函數(shù)ProArrayAlloc(int n_ objs,int obj_size,int reallocation_size,ProArray* p_array);
(3)得到組件基準(zhǔn)或組件中用于定位的元件基準(zhǔn),以及裝配元件的基準(zhǔn),對(duì)應(yīng)函數(shù)ProModelitemByNameInit(ProMdl mdl,ProType type,ProName name,ProModelitem* p_item);
(4)初始化組件的路徑或組件中用于定位的元件的路徑,對(duì)應(yīng)函數(shù)ProAsmcomppathInit(ProSolid p_ solid_handle,ProIdTable memb_id_tab,int table_size,ProAsmcomppath* p_handle)。其中,memb_id_tab表示組件中用于定位的元件的內(nèi)部特征ID,指向某個(gè)特定的零件,該值可通過查看組件中特定元件的特征信息,如該零件為第一個(gè)裝入的元件組件,該值取-1;table_size表示該零件裝入到組件中的層數(shù),具體用法如圖3所示。
(5)具體化組件和元件基準(zhǔn),對(duì)應(yīng)函數(shù)ProSelection Alloc(ProAsmcomppath* p_cmp_path,ProModelitem* p_mdl_ itm,ProSelection* p_selection);
(6)分配約束空間,以及對(duì)裝配約束進(jìn)行賦值,分配約束空間函數(shù)為ProAsmcompconstraintAlloc(),設(shè)置元件裝配類型函數(shù)為ProAsmcompconstraintTypeSet(),平面“對(duì)齊”約束的值為PRO_ASM_ALIGN,“插入”約束的值為PRO_ASM_INSERT,設(shè)置組件平面約束方向的函數(shù)為Pro AsmcompconstraintAsmreferenceSet(),設(shè)置裝配元件平面約束方向的函數(shù)為ProAsmcompconstraintCompreferenceSet();
圖3 元件路徑圖及其說明
(7)將一對(duì)約束添加到約束數(shù)組中,對(duì)應(yīng)函數(shù)ProArrayObjectAdd(ProArray* p_array,int index,int n_ objects,void* p_object);
(8)重復(fù)步驟(4)~(7),添加其它約束。如果為三對(duì)面分別“對(duì)齊”約束,將另外兩對(duì)平面約束添加到約束數(shù)組中,可以直接采用if循環(huán)函數(shù)實(shí)現(xiàn);如果為面面“對(duì)齊”與軸孔“插入”結(jié)合約束,可以采用switch語句分別添加平面“對(duì)齊”約束和軸孔“插入”約束。
(9)將約束數(shù)組添加到組件中,使相互裝配的兩個(gè)零件按所定義的約束數(shù)組重新定位,對(duì)應(yīng)函數(shù)Pro AsmcompConstraintsSet(ProAsmcomppath* component_ path,ProAsmcomp* component,ProAsmcompconstraint* p_ constraints)。
結(jié)合相關(guān)文獻(xiàn)的研究,根據(jù)自動(dòng)裝配實(shí)現(xiàn)步驟和Pro/ Toolkit函數(shù),完成了兩個(gè)應(yīng)用程序,運(yùn)行后分別完成指定的零件三對(duì)平面“對(duì)齊”約束的自動(dòng)裝配,如圖4所示,以及面板與發(fā)光二極管對(duì)應(yīng)平面“對(duì)齊”和圓周面“插入”約束的自動(dòng)裝配,如圖5所示。
在此基礎(chǔ)上,采用該方法可解決典型轉(zhuǎn)接板類的快速設(shè)計(jì)問題。
圖4 三對(duì)平面對(duì)齊約束程序運(yùn)行實(shí)例
圖5 對(duì)齊和插入結(jié)合約束程序運(yùn)行實(shí)例
本文基于Pro/E軟件自帶的二次開發(fā)工具包Pro/ Toolkit,實(shí)現(xiàn)了零件之間的三對(duì)平面“對(duì)齊”約束集自動(dòng)裝配,以及面面“對(duì)齊”與軸孔“插入”結(jié)合約束集自動(dòng)裝配,介紹了自動(dòng)裝配應(yīng)用程序?qū)崿F(xiàn)的步驟,以及主要應(yīng)用的Pro/Toolkit函數(shù),最后采用軟件開發(fā)平臺(tái)VS2008進(jìn)行編譯和連接,將自動(dòng)裝配程序集成到Pro/E軟件中,并使用實(shí)例檢驗(yàn)了程序。對(duì)于企業(yè)數(shù)量龐大的系列化產(chǎn)品,采用自動(dòng)裝配能夠大幅提高產(chǎn)品模型的裝配效率。
參考文獻(xiàn)
1林鴻義,殷鏡波.Pro/E二次開發(fā)在機(jī)械自動(dòng)裝配中的應(yīng)用[J].現(xiàn)代制造技術(shù)與裝備,2009,(3):97~98
2Parametric Technology Corporation.Pro/TOOLKIT for Pro/ENGINEER Wildfire 5.0入門[M].PTC Technology Corporation,2011
3謝敏理,和麗,許紀(jì)倩.Pro/E二次開發(fā)自動(dòng)裝配的一種方法[J].現(xiàn)代機(jī)械,2006,(1):46~48
4梅啟元.Pro/E軟件定制開發(fā)實(shí)現(xiàn)分析[J].電子機(jī)工程,2013,29(1):60~64
文章編號(hào):1009-8119(2016)02(1)-0057-02