劉紅軍,李 帥,周 鳴
(沈陽(yáng)理工大學(xué) 機(jī)械工程學(xué)院,沈陽(yáng) 110168)
UG(Unigraphics)是美國(guó)EDS公司推出的當(dāng)今世界上最先進(jìn)的CAD/CAM/CAE高端軟件平臺(tái)之一,廣泛應(yīng)用于航空、航天、機(jī)械、汽車、船舶、模具和家用電器領(lǐng)域,不僅具有強(qiáng)大的實(shí)體造型、曲面造型、參數(shù)化造型、裝配和工程圖創(chuàng)建等功能,還提供了功能強(qiáng)大的二次開發(fā)工具UG/OPEN。用戶或第三方可以使用該開發(fā)工具,開發(fā)出基于UG系統(tǒng)的應(yīng)用程序,實(shí)現(xiàn)與UG系統(tǒng)與人無縫集成,從而滿足用戶的特殊需求。
當(dāng)今,不同型號(hào)和不同規(guī)格的電器元件手工裝配是非常繁雜的過程,工作量巨大,電器元件的型號(hào)種類繁多,而一個(gè)完整的PCB電路板需要電器元件相互作用和連接才能啟到預(yù)期的作用,細(xì)微的疏忽可能導(dǎo)致電路系統(tǒng)的失效。本實(shí)例利用UG的二次開發(fā)工具UG/OPEN API對(duì)PCB電路板實(shí)現(xiàn)自動(dòng)裝配,裝配后可通過相關(guān)軟件對(duì)其進(jìn)行仿真和分析,能有效及時(shí)的發(fā)現(xiàn)錯(cuò)誤,修改相關(guān)方案,達(dá)到預(yù)期效果為止,避免可能出現(xiàn)的錯(cuò)誤,從而大大減少工作時(shí)間,提高了工作的效率。
UG裝配是以樹形的結(jié)構(gòu)組織相關(guān)部件的,一個(gè)裝配體僅有一棵裝配樹,一個(gè)根節(jié)點(diǎn)。圖1為PCB電路板的裝配樹。
圖1 PCB板裝配樹
圖中5是總裝配體即一個(gè)完整的PCB板,1是電路板(沒有安裝電器元件) 2、3、4分別代表了集成芯片、電阻和三極管等電器元件。
1)OCC為部件事件:是在裝配環(huán)境下對(duì)實(shí)際存在的部件模型的一種引用,部件事件也可以理解為指向部件原型的指針。
2)PRO為部件原型:是真實(shí)存在的部件模型,它記錄了模型所需的所有數(shù)據(jù)。
3)Ins為部件實(shí)例:是裝配節(jié)點(diǎn)的每個(gè)事件的標(biāo)識(shí),且是唯一的,用來記錄子節(jié)點(diǎn)和父節(jié)點(diǎn)之間的裝配關(guān)系的,能清晰的劃分出實(shí)例之間的層次關(guān)系,部件實(shí)例也可以理解為一種指針,有下級(jí)部件事件指向上級(jí)部件事件,不同的裝配節(jié)點(diǎn)可能具有相同的裝配關(guān)系。
本實(shí)例采用的是UG/OPEN API作為開發(fā)工具的,UG/OPEN API是UG最常用的開發(fā)工具,幾乎能實(shí)現(xiàn)UG系統(tǒng)的所有功能。它是UG與外部應(yīng)用程序之間的接口,是UG/OPEN提供一系列函數(shù)的過程的集合。
根據(jù)程序的運(yùn)行環(huán)境的不同,UG/OPEN API程序可分為兩種模式。
2.1.1 外部程序模式
UG/OPEN API程序的運(yùn)行于UG環(huán)境無關(guān),只能在UG壞境外運(yùn)行程序,在操作系統(tǒng)下單獨(dú)運(yùn)行,它是一個(gè)獨(dú)立的執(zhí)行程序,即:一個(gè)“exe”文件,不能與UG圖形界面進(jìn)行交互。在調(diào)用它的函數(shù)前要先打開prt文件(UG部件后綴)。
2.1.2 內(nèi)部程序模式
UG/OPEN API程序的運(yùn)行于UG環(huán)境有關(guān),只能在UG中運(yùn)行程序,可以通過編程軟件如VC++等對(duì)其進(jìn)行編譯、連接后形成“dll”文件,可以在UG菜單中顯示,可以與用戶進(jìn)行相互交互,方便快捷。
本實(shí)例所采用的模式為內(nèi)部模式,需要配合UG自定義菜單和程序配套進(jìn)行使用。
2.2.1 裝配信息的提取
這是進(jìn)行自動(dòng)裝配的第一步,目的是讀取PCB板上所有電器元件的相關(guān)數(shù)據(jù)和坐標(biāo)位置。步驟如下:
1)用UG/OPEN API實(shí)現(xiàn)電路板的自動(dòng)生成,得到一個(gè)有關(guān)PCB板的brd文件。
2)用VC++ 6.0對(duì)參數(shù)文件進(jìn)行數(shù)據(jù)分析處理和提取,形成一個(gè)“dll”文件,要有標(biāo)準(zhǔn)元器件庫(kù),里面包含裝配所需所有電器元件,便于裝配過程中對(duì)元器件的調(diào)用。
3)編寫UG自定義菜單文件,用于調(diào)用VC++6.0對(duì)于PCB板所解析的數(shù)據(jù),即調(diào)出“dll”文件。
2.2.2 坐標(biāo)系
在UG/OPEN API 中,坐標(biāo)系矩陣和變換矩陣決定了裝配件之間的位置。函數(shù)UF_ASSEM_ask_transform_of_occ( )和UF_ASSEM_ask_component_data( )用于獲取組件的裝配空間。本實(shí)例中,每一個(gè)電器元件在PCB板上的位置對(duì)應(yīng)一個(gè)坐標(biāo)矩陣,通過坐標(biāo)系矩陣的變換可以用來改變電器元件相對(duì)于電路板的坐標(biāo)位置。
坐標(biāo)系矩陣包括6個(gè)實(shí)數(shù),組件的坐標(biāo)原點(diǎn)包括3個(gè)實(shí)數(shù)。在向PCB板上增加電器元件的時(shí)候需要使用坐標(biāo)系矩陣,以指定組件的X軸和Y軸向量。Z軸向量可以利用X軸和Y軸向量叉乘得到。
2.2.3 部件的載入
一個(gè)完整的裝配體是由若干部件裝配在一起形成的。
部件的載入主要由函數(shù)UF_ASSEM_add_part_to_assembly( )來實(shí)現(xiàn)。本實(shí)例主要應(yīng)用是在PCB板中加入電子元器件。
語法如下:
載入的效果可以參考圖2。
2.2.4 裝配配合的創(chuàng)建和編輯
裝配中各部件的配合是由部件之間的約束決定的,不同的約束條件決定不同的配合關(guān)系。UG提供的裝配約束關(guān)系包括Mate(配對(duì))、Align(對(duì)齊)、Angle(角度)、Center(中心)、Distance(距離)、Parallel(平行)和Tangent(相切)等。本實(shí)例主要運(yùn)用的是貼合約束。
裝配配合創(chuàng)建的一般步驟為:
1)定義約束關(guān)系:利用函數(shù)UF_ASSEM_constraint_s填充配合條件。
這里主要填充是結(jié)構(gòu)體UF_ASSEM_constraint_t中的成員變量。
本實(shí)例中要把電器元件裝到PCB板上,所以板為主動(dòng)件,電器元件為被動(dòng)件。
2)求解約束:利用函數(shù)UF_ASSEM_solve_mc( )求解。
在結(jié)構(gòu)體UF_ASSEM_ constraint_t填充完所需要的數(shù)據(jù)后利用該函數(shù)對(duì)配合條件進(jìn)行求解。
求解的結(jié)果可能是:
(1)有解(UF_ASSEM_mc_solved);
(2)無解(UF_ASSEM_mc_not_solved);
(3)輸入約束錯(cuò)誤(UF_ASSEM_mc_no_mating_specifi ed);
(4)參考的部件未被加載(UF_ASSEM_mc_data_unloaded)。
3)應(yīng)用約束:利用函數(shù)UF_ASSEM_apply_mc_data( )。
把創(chuàng)建好的配合約束應(yīng)用到所需模型中去,從而實(shí)現(xiàn)模型的重新定位。
4)更新模型:利用函數(shù)UF_MODL_update( )。
把約束裝在到部件中,使模型產(chǎn)生相應(yīng)的變化,從而達(dá)到用戶的要求。加載后的元器件的位置可能與理想的位置有差距,通過應(yīng)用約束能改變主動(dòng)件與被動(dòng)件的位置關(guān)系。
本例中我們以電子元器件的裝配來演示,所用軟件為UG NX6.0。
圖2 未加入約束裝配
如圖2所示,自動(dòng)加載后的裝配體由于未加入約束條件位置位于PCB板外側(cè)。主要應(yīng)用函數(shù)UF_ASSEM_add_part_to_assembly( )把集成芯片和PCB板分別載入到UG界面中。
圖3為使用自動(dòng)裝配后元器件的位置產(chǎn)生變化達(dá)到預(yù)期的效果。其主要是通過函數(shù)UF_ASSEM_solve_mc( )對(duì)其求解,找到解,返回將主動(dòng)件變換到滿足配合條件的空間位置所需要的變換矩陣,使集成芯片的位置發(fā)生改變。
圖3 加入約束裝配
圖4 總裝配封裝圖
圖4為總的PCB電路板裝配的封裝圖,其中部件的全部加載和裝配就是復(fù)制圖2和圖3的過程。
本文利用UG NX6.0的二次開發(fā)引入了UG/OPEN API函數(shù)的使用,實(shí)現(xiàn)了電子元器件的自動(dòng)裝配,電器元件還可以通過參數(shù)化的方法改變產(chǎn)品尺寸的大小,有利于產(chǎn)品的系列化。該技術(shù)直觀、方便、操作簡(jiǎn)單。在現(xiàn)實(shí)中可以大大提高工作效率,減少工作時(shí)間并且降低了錯(cuò)誤率。
[1] 黃翔,李迎光.UG應(yīng)用開發(fā)教程與實(shí)例精解[M].清華大學(xué)出版社,2005.
[2] 侯永濤,丁向陽(yáng).UG/OPEN二次開發(fā)與實(shí)例精解[M].化學(xué)工業(yè)出版社,2007.
[3] 芮岳峰,井維峰.基于UG自動(dòng)化虛擬裝配系統(tǒng)的研究與開發(fā)[J].機(jī)械制造與自動(dòng)化,2007,36(5):18-20.
[4] 李福海,劉毅.二次開發(fā)UG實(shí)現(xiàn)飛機(jī)操縱系統(tǒng)零件參數(shù)化設(shè)計(jì)與虛擬裝配自動(dòng)化[J].機(jī)械科學(xué)與技術(shù),2003,22增刊:242-244.
[5] Zou X J,Gu B J,Sun J,et al.Web2based product development and simulation with virtual reality [J].J Comput Inf Sys,2006,2(1):161-166.