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