黨文浩,畢晉燕,姚鵬鵬,李利民,丁衛剛,陸春月
(1. 中北大學 機械工程學院,山西 太原 030051; 2. 山西汾西重工有限公司,山西 太原 030051)
智能制造隨著科技水平的不斷發展在汽車、船舶、航空航天等領域獲得廣泛的應用。西門子公司的UG NX軟件是一款集CAD、CAM、CAE為一體的三維參數化設計軟件,其功能強大,幾乎可以涵蓋產品的整個生命周期,為產品設計及加工過程提供了建模及仿真方法。
基于模型定義(model based definition,MBD)的面向計算機應用的數字化定義技術,以三維設計模型為產品制造過程中的唯一依據,能夠直觀地表達零件的工藝信息,便于生產加工,提高工作效率及精度[1]。MBD工藝模型不是簡單地把設計模型和加工工藝文本結合在一起,而是二者的緊密集成。生成MBD工藝模型流程如圖1所示。傳統的制圖軟件并不能滿足這些功能,所以要在已有軟件的基礎上進行二次開發,實現輔助設計的功能。為了提高生產技術,MBD工藝技術的研究具有重要意義[2]。本文以軸類零件作為研究對象,對其特征進行分類,用NX二次開發技術建立特征庫,運用特征庫進行特征遍歷和匹配,并確定加工工藝路線,最后應用NX WAVE幾何鏈接器和用戶自定義特征模塊進行三維工序模型的創建。

圖1 生成MBD工藝模型流程
用戶自定義特征(user defined features, UDF)是原本軟件中沒有的特征,需要用戶進行創建,新建的特征可以單獨保存,方便后期調用。根據本文需求,所創建的特征庫包括了零件特征的幾何信息和工藝信息[3]。
加工特征是一個零件在加工過程中進行減材制造最小的基本單位,軸類零件的MBD模型具有2個基本特征:特征獨立性和基于加工順序建模。只有定義完整的加工信息才能符合三維CAPP的設計要求,軸類零件的加工特征及分類如圖2所示。

圖2 軸類零件的特征及分類
NX軟件自帶UDF的數據庫,但自帶的庫不能存儲工藝信息等非幾何參數,只能單獨存在。為了滿足設計需求,需要在原有的基礎上,運用二次開發建立加工特征庫,需要按照零件的特征進行分類,依照分類進行建模,用開發NX對話框的可視化工具進行創建,最后使用Visual Studio 2010進行回調函數的編寫。圖3為加工特征庫對話框。

圖3 加工特征庫對話框
首先要建立零件的設計模型,需要根據模型的特征進行創建,然后用NX/Open做二次開發,建立加工特征庫,設計模型需要做特征識別,將特征識別的結果與特征庫進行比對,一一對應后得到所需要的結果。
本文使用一種基于特征遍歷的特征識別方法,利用這種方法對零件的特征進行識別,將零件的形狀特征通過特征遍歷識別后,進行PMI(product manufacturing information)信息的提取;以特征建模的方法建立特征庫,進行加工特征的遍歷,得到形狀特征和加工特征的遍歷結果。運用成組技術對形狀特征進行編碼,用編碼表示零件的加工特征,然后建立編碼的矩陣;用零件的模型特征遍歷的結果建立相應的編碼矩陣,最后進行兩個矩陣的匹配,實現特征識別[4]。
特征遍歷是指對NX部件導航器中的特征進行遍歷,通過這種特征遍歷得到的部件特征是NX部件導航器中按照創建特征順序得到的軟件本身自動命名的特征[5]。NX建模創建特征的方法不同,得到的特征遍歷結果也是不同的。如圖4所示,圖4(a)為創建的一個零件的特征,圖4(b)遍歷結果是通過草圖拉伸建模得到的,圖4(c)遍歷結果是通過特征建模的模型得到的。



圖4 草圖拉伸建模與特征建模特征遍歷結果
由上可得一個簡單零件,由于創建特征的方式不同,得到的遍歷結果也不同。本文選擇運用特征建模,方便后期做特征匹配。
通過NX的二次開發,運用NX軟件自帶的API函數對設計模型進行特征分析,并進行識別。但是對于一些比較復雜的特征,可以采用人為干涉,用人工交互的方式來進行特征的提取。
在創建設計模型之后,為了直觀地體現加工所需數據信息,對模型進行PMI標注。提取PMI信息之后,在模型的部件導航器中,可以顯示該模型的全部標注信息。NX軟件內部自帶的API函數可以訪問提取的PMI信息[6]。與前文提出的遍歷方法一樣,通過軟件內部函數識別和提取PMI信息。
數字化在制造業起著舉足輕重的作用,大量的數據需要進行整理和系統的管理。把零件的結構特征、基本屬性等信息進行編碼將提高信息的利用率,提供解決問題的方法。編碼可建立對零件復雜特征進行簡單的描述,便于計算機的識別[7]。
以軸類零件的特征為對象,根據前文進行特征識別的結果以及NX內部的特征定義對特征進行編碼,如表1所示。

表1 設計特征編碼表
設加工特征庫中的特征集合為P={p1,p2,…,pn},其中P中的元素為特征庫中的具體加工特征。根據零件的實際加工特征,對比零件特征庫,可將零件特征進行編碼。在建立的編碼系統中,有5種特征以及5種特征編號,以此建立10×n的矩陣來進行編碼,每一列代表1種特征,1代表具有該特征,0則代表沒有。圖4中模型特征包括2個圓柱和1個退刀槽,對其特征進行編碼得到矩陣
(1)
將零件的加工特征和模型特征進行編碼,并用矩陣表示,最后進行兩個矩陣的匹配,得到最優的加工工序。
特征識別的算法主要步驟如下:
1)將三維的prt格式文件導入NX,通過內部函數獲得零件的標識;
2)對設計模型進行特征遍歷,特征遍歷基于特征樹,將遍歷得到的結果進行存儲,并得到每一個特征的標識;
3)判斷特征的類型。如果是屬于特征建模得到的特征,則直接添加到特征列表;
4)如果是拉伸建立的特征,需要判斷布爾運算的類型,再進行添加;
5)如果是更為復雜的特征,就需要人工介入,確定基準,再自定義特征類型,然后添加到特征列表。
本文運用遺傳算法進行工序尋優,遺傳算法遵循自然界優勝劣汰的法則選取最優解決方案,將特征編碼表示成染色體,進行交叉、變異等操作,不斷進行產生下一代,產生更加適應種群的優秀個體,直到找到一個最優的個體。
目前MBD工序模型的建立有兩種方法,一種是減材制造,首先建立毛坯,然后在這個特征上運用布爾運算中的相減生成工序模型;另一種是增材制造,運用拉伸、旋轉、掃略等命令建立實體模型,然后結合加工步驟得到毛坯,求得MBD工序模型的逆解[7]。本文運用減材制造建立零件的MBD工序模型。
在實際的生產加工過程中,應遵循先粗后精、先主后次、先面后孔等順序原則,建模也需要遵循相應的順序如下[8-9]:
1) 先創建基本特征,將細節的特征放在后面進行創建;
2) 如果軸為空心軸模型,則優先進行軸內打通孔;
3) 軸外側的特征應先切除表面的材料,再進行相關的打孔;
4) 螺紋特征應在細節特征創建之后再進行創建。
一個零件從毛坯進行加工成為成品的全部過程就是它的加工工藝路線,創建零件的MBD工序模型需要以零件的詳細工藝路線為依據,在對零件的特征識別之后,運用遺傳算法確定最終的加工工藝路線,根據它建立零件的工序模型。算法以該零件加工特征的所有加工步驟集合為初始種群。采用基于成組技術的實數編碼方式進行編碼,選用裝夾次數,設定適應度函數,進行模擬仿真,得出最優的加工步驟。
MBD工序模型是在傳統二維圖樣的基礎上,升級為更加直觀可視的三維模型,可以直接在圖樣上體現模型的尺寸標記、文本注釋、屬性等工藝信息,可以指導生產加工。基于MBD的工序模型可以更加直觀地體現零件信息,這些信息能更好地用于后期數控編程以及仿真[10]。MBD工序模型由零件工序的幾何模型、零件加工特征的相關工序信息等組成,用公式表示零件的MBD模型如公式(2)所示。
(2)

本文選用逆向推導方式創建零件的三維MBD工序模型,運用NX軟件自帶的標注功能對模型進行非幾何信息的標注,最后用WAVE幾何鏈接器管理工序模型的創建部件。
以NX 8.5三維軟件為平臺,選擇NX/Open作為二次開發的工具,用C++作為編程語言,進行MBD工序模型系統的開發。實現三維MBD工序模型的建立需要在裝配環境下進行。首先特征建模,創建軸類零件的三維模型,用PMI模塊進行標注;然后進行特征識別和工藝規劃,根據自建特征庫確定三維工序模型的建模順序以及確定加工的切削參數;最后調用NX的WAVE幾何鏈接器進行部件之間的鏈接,鏈接部件后添加到裝配模型樹下,將該部件設置為工作部件,進行工序模型的創建,創建模型利用用戶自定義開發的三維工序模型建模功能進行快速建模,建模完成后利用WAVE PMI鏈接器進行部件的主要PMI信息的鏈接,部分新建PMI信息使用NX自身PMI功能建立,一個工序模型完成后,依次建立下個工序模型直到創建到毛坯模型,最終創建出各個三維MBD工序模型。
三維工序模型建模流程圖如圖5所示。

圖5 三維工序建模流程圖
按照特征建模的建模方法建立的MBD模型如圖6所示。

圖6 零件MBD模型
運用特征識別算法,對設計模型進行特征遍歷,得到如下結果(圖7)。

圖7 零件設計模型特征遍歷結果
根據遍歷結果實現特征識別并確定該零件的工藝路線。確定模型的工藝路線是為了建立工序模型,因此只考慮形狀特征發生改變的工序,表面處理、熱處理等信息根據需求使用三維標注的方式標注在MBD模型中。該零件逆向從設計模型到毛坯模型共需要經歷7步建模工序,由設計模型—車螺紋—銑鍵槽—半精車一端圓柱體—半精車另一端—粗車一端—粗車另一端—毛坯模型。最終工序模型由左到右為的設計模型到毛坯的模型步驟,建模結果如圖8所示。

圖8 三維工序模型
三維工序模型是連接設計與制造的橋梁,本文通過基于特征樹的特征遍歷匹配方法實現特征識別,應用幾何鏈接器功能和建模功能實現三維工序模型的創建,并通過實例驗證了方法的可行性,最終完成了工序模型的創建,該研究為后續完成CAPP系統奠定了基礎。