□ 高 嘯 □ 田錫天
西北工業(yè)大學 CAPP與制造工程軟件研究所 西安 710072
UG(Unigraphics NX)是 Siemens PLM Software公司推出的當今世界上最先進的CAD/CAM/CAE高端軟件平臺之一,廣泛應用于航空、航天、機械、汽車、船舶、模具和家用電器領域,不僅具有強大的實體造型、曲面造型、參數(shù)化造型、裝配和工程圖創(chuàng)建等功能,還提供了功能強大的二次開發(fā)工具UG/Open。用戶或第三方可以使用該開發(fā)工具,開發(fā)出基于UG系統(tǒng)的應用程序,實現(xiàn)UG系統(tǒng)與人的無縫集成,從而滿足用戶的特殊需求[1][2]。
當今,對液壓支架各個部件進行三維建模后的手工裝配是非常繁雜的過程,不僅工作量大,且細微的疏忽會導致裝配干涉的出現(xiàn)。操作者在使用三維軟件進行裝配操作的過程中,各個零部件的裝配關(guān)系是確定的,且不同型號、不同規(guī)格的液壓支架的裝配位置與裝配方法基本一致,可以將這部分知識繼承整理,使計算機能夠利用這部分知識進行自動裝配。本文利用UG的二次開發(fā)工具UG/Open API對液壓支架的三維模型進行自動裝配,裝配后能有效及時地發(fā)現(xiàn)錯誤,修改相關(guān)方案,達到預期效果,從而大大減少了模型裝配時間,提高了工作效率。
液壓支架主要由9部分組件裝配而成,包括底座、前后連桿(各兩根)、掩護梁、頂梁、立柱組(兩根)以及平衡千斤頂。圖1為液壓支架的裝配關(guān)系。
圖1 液壓支架裝配關(guān)系
UG的裝配是以樹型結(jié)構(gòu)來組織裝配中的組件和零件,根據(jù)UG的定義,每一個裝配體有且只有一棵裝配樹,即只能存在一個樹根。顯然裝配樹根對于遍歷裝配樹中的零件是非常重要的,通常是遍歷的起點。在圖1中裝配樹的根是底座,底座上面連接著5個組件,即立柱組、左前連桿、右前連桿、左后連桿、右后連桿,本文稱之為部件事例Occurrence,它是在裝配環(huán)境下對實際存在的部件模型的一種引用,同時部件事例也可以理解為指向部件原型的指針。從圖1中可以看出,底座與它上面連接的5個組件是通過裝配約束連接的,本文稱之為部件實例Instance,它是裝配節(jié)點每個事件的標識,且是唯一的。在裝配中,組件和其子組件之間的關(guān)系是利用Instance來描述的。另外每一個事例都有一個原型Prototype,它是真實存在的部件模型,記錄了模型所需的所有數(shù)據(jù)。
本實例采用UG/Open API作為開發(fā)工具,它是UG軟件中的一個重要模塊,是UG的二次開發(fā)工具之一。作為UG與外部應用程序之間的接口,UG/Open API是一系列函數(shù)的集合,通過UG/Open API的編程,用戶幾乎能實現(xiàn)所有的UG功能,開發(fā)者可以通過C語言編程來調(diào)用這些函數(shù),從而達到實現(xiàn)用戶化的需要。
UG/Open API程序能在Internal和 External兩種環(huán)境下運行。
Internal環(huán)境(也稱Internal開發(fā)模式)下的程序只能在UG的界面環(huán)境下運行。在運行這些程序時,它們被加載到UG運行空間中(UG分配的內(nèi)存)。
External環(huán)境(也稱External開發(fā)模式)開發(fā)的程序能在操作系統(tǒng)下運行,不在UG環(huán)境中作為UG的子進程運行。通常External模式用于那些不需要圖形界面的后臺運行應用程序,如打印機或繪圖儀輸出[3]。
本文采用Internal模式,通過VC++6.0對其進行編譯、連接,形成動態(tài)鏈接庫文件(assem.dll)。從UG主菜單:文件→執(zhí)行→NX Open來運行動態(tài)鏈接庫文件,實現(xiàn)自動裝配。
自動裝配過程需要4步:組件的加載,組件事例標識的獲取,約束對象標識的獲取,裝配約束關(guān)系的建立。
2.2.1 組件的加載
使用UF_ASSEM_add_part_to_assembly函數(shù)可將部件加載到裝配體。本文使用這個函數(shù)將液壓支架除底座外的8個主要部件(底座作為固定件手動載入)載入到裝配體中。該函數(shù)的使用方法如下:
重復調(diào)用該程序段,載入效果如圖2。
圖2 組件的加載
2.2.2 組件事例標識的獲取
主動組件的事例標識可以通過UF_ASSEM_ask_part_occ_of_inst函數(shù)直接獲取。從動組件事例標識需要通過以下3步獲?。孩俅_定從動組件的部件標識;②獲取從動組件的所有事例標識;③匹配事例標識對應的組件名與從動組件組件名,確定從動組件的事例標識。需要注意的是,在同一裝配中,部件名、組件名不能相同。
2.2.3 約束對象標識的獲取
約束對象標識的獲取分為以下2步:①使用函數(shù)UF_ASSEM_set_work_part將對象所在部件設置為工作部件;②利用UF_OBJ_cycle_by_name獲取對象標識。需要注意的是,在同一部件中,對象名不能相同。
2.2.4 裝配約束關(guān)系的建立
裝配約束是通過定義兩個組件之間的約束條件來確定組件在裝配體中的位置,建立組件間的裝配約束需要以下4個步驟:①定義裝配條件,即填充結(jié)構(gòu)UF_ASSEM_constraint_s;②利用函數(shù) UF_ASSEM_solve_mc求解配合關(guān)系,并返回相關(guān)信息,其參數(shù)描述見表1,語法格式如下:
表1 函數(shù)UF_ASSEM_solve_mc的參數(shù)描述
ExternintUF_ASSEM_solve_mc UF_ASSEM_mating_condition_p_tmc_data,UF_ASSEM_mc_status_t*status,UF_ASSEM_dof_p_t dof,double transform[4][4]);③利用函數(shù)UF_ASSEM_apply_mc_data將裝配約束應用到裝配體上;④使用函數(shù)UF_MODl_update更新模型,以反映模型變化,完成零件的空間重定位,圖3為裝配總圖。
圖3 裝配總圖
本文利用UG NX6.0進行二次開發(fā),引入了UG/Open API函數(shù),實現(xiàn)了液壓支架組件的自動裝配,各主要組件還可以通過參數(shù)化的方法改變產(chǎn)品尺寸的大小,有利于產(chǎn)品的系列化。該技術(shù)直觀、方便、操作簡單。在現(xiàn)實中可以大大提高工作效率,減少工作時間并且降低了錯誤率。
[1] 劉紅軍,李帥,周鳴.基于PCB電路板自動裝配技術(shù)的開發(fā)[J].制造業(yè)自動化,2011,10(上):23-26.
[2] 芮岳峰,井維峰.基于UG自動化虛擬裝配系統(tǒng)的研究與開發(fā)[J].機械制造與自動化,2007,36(5):18-20.
[3] 李福海,劉毅.二次開發(fā)UG實現(xiàn)飛機操縱系統(tǒng)零件參數(shù)化設計與虛擬裝配自動化[J].機械科學與技術(shù),2003,22(增刊):242-244.