黨文浩,畢晉燕,姚鵬鵬,李利民,丁衛(wèi)剛,陸春月
(1. 中北大學(xué) 機(jī)械工程學(xué)院,山西 太原 030051; 2. 山西汾西重工有限公司,山西 太原 030051)
智能制造隨著科技水平的不斷發(fā)展在汽車、船舶、航空航天等領(lǐng)域獲得廣泛的應(yīng)用。西門子公司的UG NX軟件是一款集CAD、CAM、CAE為一體的三維參數(shù)化設(shè)計(jì)軟件,其功能強(qiáng)大,幾乎可以涵蓋產(chǎn)品的整個(gè)生命周期,為產(chǎn)品設(shè)計(jì)及加工過程提供了建模及仿真方法。
基于模型定義(model based definition,MBD)的面向計(jì)算機(jī)應(yīng)用的數(shù)字化定義技術(shù),以三維設(shè)計(jì)模型為產(chǎn)品制造過程中的唯一依據(jù),能夠直觀地表達(dá)零件的工藝信息,便于生產(chǎn)加工,提高工作效率及精度[1]。MBD工藝模型不是簡單地把設(shè)計(jì)模型和加工工藝文本結(jié)合在一起,而是二者的緊密集成。生成MBD工藝模型流程如圖1所示。傳統(tǒng)的制圖軟件并不能滿足這些功能,所以要在已有軟件的基礎(chǔ)上進(jìn)行二次開發(fā),實(shí)現(xiàn)輔助設(shè)計(jì)的功能。為了提高生產(chǎn)技術(shù),MBD工藝技術(shù)的研究具有重要意義[2]。本文以軸類零件作為研究對(duì)象,對(duì)其特征進(jìn)行分類,用NX二次開發(fā)技術(shù)建立特征庫,運(yùn)用特征庫進(jìn)行特征遍歷和匹配,并確定加工工藝路線,最后應(yīng)用NX WAVE幾何鏈接器和用戶自定義特征模塊進(jìn)行三維工序模型的創(chuàng)建。
圖1 生成MBD工藝模型流程
用戶自定義特征(user defined features, UDF)是原本軟件中沒有的特征,需要用戶進(jìn)行創(chuàng)建,新建的特征可以單獨(dú)保存,方便后期調(diào)用。根據(jù)本文需求,所創(chuàng)建的特征庫包括了零件特征的幾何信息和工藝信息[3]。
加工特征是一個(gè)零件在加工過程中進(jìn)行減材制造最小的基本單位,軸類零件的MBD模型具有2個(gè)基本特征:特征獨(dú)立性和基于加工順序建模。只有定義完整的加工信息才能符合三維CAPP的設(shè)計(jì)要求,軸類零件的加工特征及分類如圖2所示。
圖2 軸類零件的特征及分類
NX軟件自帶UDF的數(shù)據(jù)庫,但自帶的庫不能存儲(chǔ)工藝信息等非幾何參數(shù),只能單獨(dú)存在。為了滿足設(shè)計(jì)需求,需要在原有的基礎(chǔ)上,運(yùn)用二次開發(fā)建立加工特征庫,需要按照零件的特征進(jìn)行分類,依照分類進(jìn)行建模,用開發(fā)NX對(duì)話框的可視化工具進(jìn)行創(chuàng)建,最后使用Visual Studio 2010進(jìn)行回調(diào)函數(shù)的編寫。圖3為加工特征庫對(duì)話框。
圖3 加工特征庫對(duì)話框
首先要建立零件的設(shè)計(jì)模型,需要根據(jù)模型的特征進(jìn)行創(chuàng)建,然后用NX/Open做二次開發(fā),建立加工特征庫,設(shè)計(jì)模型需要做特征識(shí)別,將特征識(shí)別的結(jié)果與特征庫進(jìn)行比對(duì),一一對(duì)應(yīng)后得到所需要的結(jié)果。
本文使用一種基于特征遍歷的特征識(shí)別方法,利用這種方法對(duì)零件的特征進(jìn)行識(shí)別,將零件的形狀特征通過特征遍歷識(shí)別后,進(jìn)行PMI(product manufacturing information)信息的提?。灰蕴卣鹘5姆椒ń⑻卣鲙?,進(jìn)行加工特征的遍歷,得到形狀特征和加工特征的遍歷結(jié)果。運(yùn)用成組技術(shù)對(duì)形狀特征進(jìn)行編碼,用編碼表示零件的加工特征,然后建立編碼的矩陣;用零件的模型特征遍歷的結(jié)果建立相應(yīng)的編碼矩陣,最后進(jìn)行兩個(gè)矩陣的匹配,實(shí)現(xiàn)特征識(shí)別[4]。
特征遍歷是指對(duì)NX部件導(dǎo)航器中的特征進(jìn)行遍歷,通過這種特征遍歷得到的部件特征是NX部件導(dǎo)航器中按照創(chuàng)建特征順序得到的軟件本身自動(dòng)命名的特征[5]。NX建模創(chuàng)建特征的方法不同,得到的特征遍歷結(jié)果也是不同的。如圖4所示,圖4(a)為創(chuàng)建的一個(gè)零件的特征,圖4(b)遍歷結(jié)果是通過草圖拉伸建模得到的,圖4(c)遍歷結(jié)果是通過特征建模的模型得到的。
圖4 草圖拉伸建模與特征建模特征遍歷結(jié)果
由上可得一個(gè)簡單零件,由于創(chuàng)建特征的方式不同,得到的遍歷結(jié)果也不同。本文選擇運(yùn)用特征建模,方便后期做特征匹配。
通過NX的二次開發(fā),運(yùn)用NX軟件自帶的API函數(shù)對(duì)設(shè)計(jì)模型進(jìn)行特征分析,并進(jìn)行識(shí)別。但是對(duì)于一些比較復(fù)雜的特征,可以采用人為干涉,用人工交互的方式來進(jìn)行特征的提取。
在創(chuàng)建設(shè)計(jì)模型之后,為了直觀地體現(xiàn)加工所需數(shù)據(jù)信息,對(duì)模型進(jìn)行PMI標(biāo)注。提取PMI信息之后,在模型的部件導(dǎo)航器中,可以顯示該模型的全部標(biāo)注信息。NX軟件內(nèi)部自帶的API函數(shù)可以訪問提取的PMI信息[6]。與前文提出的遍歷方法一樣,通過軟件內(nèi)部函數(shù)識(shí)別和提取PMI信息。
數(shù)字化在制造業(yè)起著舉足輕重的作用,大量的數(shù)據(jù)需要進(jìn)行整理和系統(tǒng)的管理。把零件的結(jié)構(gòu)特征、基本屬性等信息進(jìn)行編碼將提高信息的利用率,提供解決問題的方法。編碼可建立對(duì)零件復(fù)雜特征進(jìn)行簡單的描述,便于計(jì)算機(jī)的識(shí)別[7]。
以軸類零件的特征為對(duì)象,根據(jù)前文進(jìn)行特征識(shí)別的結(jié)果以及NX內(nèi)部的特征定義對(duì)特征進(jìn)行編碼,如表1所示。
表1 設(shè)計(jì)特征編碼表
設(shè)加工特征庫中的特征集合為P={p1,p2,…,pn},其中P中的元素為特征庫中的具體加工特征。根據(jù)零件的實(shí)際加工特征,對(duì)比零件特征庫,可將零件特征進(jìn)行編碼。在建立的編碼系統(tǒng)中,有5種特征以及5種特征編號(hào),以此建立10×n的矩陣來進(jìn)行編碼,每一列代表1種特征,1代表具有該特征,0則代表沒有。圖4中模型特征包括2個(gè)圓柱和1個(gè)退刀槽,對(duì)其特征進(jìn)行編碼得到矩陣
(1)
將零件的加工特征和模型特征進(jìn)行編碼,并用矩陣表示,最后進(jìn)行兩個(gè)矩陣的匹配,得到最優(yōu)的加工工序。
特征識(shí)別的算法主要步驟如下:
1)將三維的prt格式文件導(dǎo)入NX,通過內(nèi)部函數(shù)獲得零件的標(biāo)識(shí);
2)對(duì)設(shè)計(jì)模型進(jìn)行特征遍歷,特征遍歷基于特征樹,將遍歷得到的結(jié)果進(jìn)行存儲(chǔ),并得到每一個(gè)特征的標(biāo)識(shí);
3)判斷特征的類型。如果是屬于特征建模得到的特征,則直接添加到特征列表;
4)如果是拉伸建立的特征,需要判斷布爾運(yùn)算的類型,再進(jìn)行添加;
5)如果是更為復(fù)雜的特征,就需要人工介入,確定基準(zhǔn),再自定義特征類型,然后添加到特征列表。
本文運(yùn)用遺傳算法進(jìn)行工序?qū)?yōu),遺傳算法遵循自然界優(yōu)勝劣汰的法則選取最優(yōu)解決方案,將特征編碼表示成染色體,進(jìn)行交叉、變異等操作,不斷進(jìn)行產(chǎn)生下一代,產(chǎn)生更加適應(yīng)種群的優(yōu)秀個(gè)體,直到找到一個(gè)最優(yōu)的個(gè)體。
目前MBD工序模型的建立有兩種方法,一種是減材制造,首先建立毛坯,然后在這個(gè)特征上運(yùn)用布爾運(yùn)算中的相減生成工序模型;另一種是增材制造,運(yùn)用拉伸、旋轉(zhuǎn)、掃略等命令建立實(shí)體模型,然后結(jié)合加工步驟得到毛坯,求得MBD工序模型的逆解[7]。本文運(yùn)用減材制造建立零件的MBD工序模型。
在實(shí)際的生產(chǎn)加工過程中,應(yīng)遵循先粗后精、先主后次、先面后孔等順序原則,建模也需要遵循相應(yīng)的順序如下[8-9]:
1) 先創(chuàng)建基本特征,將細(xì)節(jié)的特征放在后面進(jìn)行創(chuàng)建;
2) 如果軸為空心軸模型,則優(yōu)先進(jìn)行軸內(nèi)打通孔;
3) 軸外側(cè)的特征應(yīng)先切除表面的材料,再進(jìn)行相關(guān)的打孔;
4) 螺紋特征應(yīng)在細(xì)節(jié)特征創(chuàng)建之后再進(jìn)行創(chuàng)建。
一個(gè)零件從毛坯進(jìn)行加工成為成品的全部過程就是它的加工工藝路線,創(chuàng)建零件的MBD工序模型需要以零件的詳細(xì)工藝路線為依據(jù),在對(duì)零件的特征識(shí)別之后,運(yùn)用遺傳算法確定最終的加工工藝路線,根據(jù)它建立零件的工序模型。算法以該零件加工特征的所有加工步驟集合為初始種群。采用基于成組技術(shù)的實(shí)數(shù)編碼方式進(jìn)行編碼,選用裝夾次數(shù),設(shè)定適應(yīng)度函數(shù),進(jìn)行模擬仿真,得出最優(yōu)的加工步驟。
MBD工序模型是在傳統(tǒng)二維圖樣的基礎(chǔ)上,升級(jí)為更加直觀可視的三維模型,可以直接在圖樣上體現(xiàn)模型的尺寸標(biāo)記、文本注釋、屬性等工藝信息,可以指導(dǎo)生產(chǎn)加工。基于MBD的工序模型可以更加直觀地體現(xiàn)零件信息,這些信息能更好地用于后期數(shù)控編程以及仿真[10]。MBD工序模型由零件工序的幾何模型、零件加工特征的相關(guān)工序信息等組成,用公式表示零件的MBD模型如公式(2)所示。
(2)
本文選用逆向推導(dǎo)方式創(chuàng)建零件的三維MBD工序模型,運(yùn)用NX軟件自帶的標(biāo)注功能對(duì)模型進(jìn)行非幾何信息的標(biāo)注,最后用WAVE幾何鏈接器管理工序模型的創(chuàng)建部件。
以NX 8.5三維軟件為平臺(tái),選擇NX/Open作為二次開發(fā)的工具,用C++作為編程語言,進(jìn)行MBD工序模型系統(tǒng)的開發(fā)。實(shí)現(xiàn)三維MBD工序模型的建立需要在裝配環(huán)境下進(jìn)行。首先特征建模,創(chuàng)建軸類零件的三維模型,用PMI模塊進(jìn)行標(biāo)注;然后進(jìn)行特征識(shí)別和工藝規(guī)劃,根據(jù)自建特征庫確定三維工序模型的建模順序以及確定加工的切削參數(shù);最后調(diào)用NX的WAVE幾何鏈接器進(jìn)行部件之間的鏈接,鏈接部件后添加到裝配模型樹下,將該部件設(shè)置為工作部件,進(jìn)行工序模型的創(chuàng)建,創(chuàng)建模型利用用戶自定義開發(fā)的三維工序模型建模功能進(jìn)行快速建模,建模完成后利用WAVE PMI鏈接器進(jìn)行部件的主要PMI信息的鏈接,部分新建PMI信息使用NX自身PMI功能建立,一個(gè)工序模型完成后,依次建立下個(gè)工序模型直到創(chuàng)建到毛坯模型,最終創(chuàng)建出各個(gè)三維MBD工序模型。
三維工序模型建模流程圖如圖5所示。
圖5 三維工序建模流程圖
按照特征建模的建模方法建立的MBD模型如圖6所示。
圖6 零件MBD模型
運(yùn)用特征識(shí)別算法,對(duì)設(shè)計(jì)模型進(jìn)行特征遍歷,得到如下結(jié)果(圖7)。
圖7 零件設(shè)計(jì)模型特征遍歷結(jié)果
根據(jù)遍歷結(jié)果實(shí)現(xiàn)特征識(shí)別并確定該零件的工藝路線。確定模型的工藝路線是為了建立工序模型,因此只考慮形狀特征發(fā)生改變的工序,表面處理、熱處理等信息根據(jù)需求使用三維標(biāo)注的方式標(biāo)注在MBD模型中。該零件逆向從設(shè)計(jì)模型到毛坯模型共需要經(jīng)歷7步建模工序,由設(shè)計(jì)模型—車螺紋—銑鍵槽—半精車一端圓柱體—半精車另一端—粗車一端—粗車另一端—毛坯模型。最終工序模型由左到右為的設(shè)計(jì)模型到毛坯的模型步驟,建模結(jié)果如圖8所示。
圖8 三維工序模型
三維工序模型是連接設(shè)計(jì)與制造的橋梁,本文通過基于特征樹的特征遍歷匹配方法實(shí)現(xiàn)特征識(shí)別,應(yīng)用幾何鏈接器功能和建模功能實(shí)現(xiàn)三維工序模型的創(chuàng)建,并通過實(shí)例驗(yàn)證了方法的可行性,最終完成了工序模型的創(chuàng)建,該研究為后續(xù)完成CAPP系統(tǒng)奠定了基礎(chǔ)。