郭忠亮,白鳳梅,,姚 磊
(1.安徽工業(yè)大學(xué) 冶金工程學(xué)院;2.安徽工業(yè)大學(xué) 工商學(xué)院,安徽 馬鞍山 243100)
Unigraphics(UG)是面向產(chǎn)品整個(gè)生命周期的大型建模制圖軟件,擁有CAD、CAE、CAM三大模塊,在船舶、汽車(chē)、飛機(jī)等設(shè)計(jì)制造領(lǐng)域有著廣泛的應(yīng)用,在全球數(shù)字化產(chǎn)品開(kāi)發(fā)系統(tǒng)中有著領(lǐng)先地位,可為用戶(hù)提供完善的產(chǎn)品設(shè)計(jì)解決方案,覆蓋產(chǎn)品設(shè)計(jì)、仿真分析到產(chǎn)品制造的整個(gè)開(kāi)發(fā)流程,功能強(qiáng)大,系統(tǒng)穩(wěn)定,開(kāi)放性強(qiáng),能顯著提高設(shè)計(jì)效率與質(zhì)量[1].但是,作為一種廣泛應(yīng)用的CAD/CAM/CAE平臺(tái),在不同的領(lǐng)域,許多常規(guī)性的工作還未能夠?qū)崿F(xiàn)自動(dòng)化;雖然已經(jīng)有大量的設(shè)計(jì)經(jīng)驗(yàn)和成功事例,但是這些并沒(méi)有集成到通用CAD/CAM/CAE系統(tǒng)中,因此,用戶(hù)引進(jìn)UG軟件后,需要進(jìn)行不同程度的二次開(kāi)發(fā),以便使其在本企業(yè)中淋漓盡致地發(fā)揮作用[2].為順應(yīng)這些設(shè)計(jì)需求,知識(shí)工程(Knowledge Based Engineering,KBE)得以不斷發(fā)展、應(yīng)用.UG NX知識(shí)融合 (Knowledge Fusion,KF)由SiemensPLM Software公司開(kāi)發(fā)的一種KBE系統(tǒng)開(kāi)發(fā)工具.相比于NX Open GRIP(一個(gè)用于自動(dòng)化CAD/CAM/CAE 任務(wù)的中間腳本語(yǔ)言)[3]、Open C(一個(gè)直接的NX編程接口,允許用戶(hù)使用流行的C編程語(yǔ)言來(lái)創(chuàng)建自定義應(yīng)用程序)、Open C++(提供了NX第一個(gè)面向?qū)ο蟮慕涌?[4],采用知識(shí)融合編程語(yǔ)言[5]應(yīng)用到UG二次開(kāi)發(fā)中主要有如下特點(diǎn):
(1)以一種面向?qū)ο蟮摹⒔忉屝缘恼Z(yǔ)言進(jìn)行編程;
(2)允許通過(guò)創(chuàng)建規(guī)則擴(kuò)充知識(shí)工程;
(3)能夠有效地利用外部知識(shí)源,如電子表格、數(shù)據(jù)庫(kù)等;
(4)提供豐富的UG NX類(lèi)庫(kù),并允許用戶(hù)創(chuàng)建自己的類(lèi);
(5)能夠自動(dòng)獲取給出零件的幾何及非幾何特性,并將能夠描述創(chuàng)建該零件或裝配體過(guò)程中的規(guī)則詳細(xì)地記錄下來(lái),且可在CAD/CAM文件中獲取信息和數(shù)據(jù).
為減少摩擦損失,一種用于將旋轉(zhuǎn)的軸與軸座之間的滑動(dòng)摩擦轉(zhuǎn)變?yōu)闈L動(dòng)摩擦的機(jī)械元件,稱(chēng)為滾動(dòng)軸承(Rolling Bearing).
滾動(dòng)軸承在起動(dòng)性、使用維護(hù)、中等速度下承載能力、工作可靠性等方面具有顯著的優(yōu)點(diǎn),因而被廣泛使用在機(jī)械(或部件)中.所以有必要開(kāi)發(fā)軸承的標(biāo)準(zhǔn)庫(kù)件,為機(jī)械(或部件)的產(chǎn)品設(shè)計(jì)中,標(biāo)準(zhǔn)件的調(diào)用提供方便[6].
“知識(shí)融合”內(nèi)嵌于UG NX軟件的系統(tǒng)之中,融合了傳統(tǒng)的CAD技術(shù)及知識(shí)工程技術(shù).開(kāi)發(fā)者可通過(guò)知識(shí)融合技術(shù),將某一行業(yè)所特有的工作經(jīng)驗(yàn)、產(chǎn)品知識(shí)以及可復(fù)制性工作創(chuàng)建于產(chǎn)品模型中,實(shí)現(xiàn)對(duì)已完成工作的多次利用,減少重復(fù)性勞動(dòng),最終可提高工作效率.除此之外,還可避免在設(shè)計(jì)過(guò)程中的人為失誤,使繁雜的開(kāi)發(fā)設(shè)計(jì)工作簡(jiǎn)單化、智能化.本方法所涉及的方法、步驟,具體見(jiàn)圖1所示.

圖1 知識(shí)融合(KF)開(kāi)發(fā)流程圖
標(biāo)準(zhǔn)件庫(kù)設(shè)計(jì)為與UG傳統(tǒng)交互界面相同的分級(jí)式下拉菜單,如圖2示.下拉菜單設(shè)計(jì)的具體操作步驟為:利用Menu—Script所提供的UG NX菜單腳本語(yǔ)言,將其編寫(xiě)成一個(gè)擴(kuò)展名為*..men的文本文件,通過(guò)對(duì)環(huán)境變量的設(shè)定,在用戶(hù)啟動(dòng)UG NX后會(huì)自動(dòng)加載用戶(hù)菜單文件,生成UG NX用戶(hù)菜單[7].

圖2 承標(biāo)準(zhǔn)件用戶(hù)菜單
采用用戶(hù)自定義特征(UDF)可擴(kuò)展UG系統(tǒng)中的內(nèi)嵌形狀特征,可創(chuàng)建或添加新的UDFs到一個(gè)目標(biāo)實(shí)體,用戶(hù)可根據(jù)自身需要定義這些特征的形狀及功能,并將這些特征在配置庫(kù)中以某一個(gè)邏輯規(guī)則進(jìn)行組織.用戶(hù)自定義特征對(duì)現(xiàn)有的特征造型模塊所提供的形狀特征的范圍進(jìn)行了有效擴(kuò)充,和已有的特征一樣,擁有參數(shù)化的形狀及位置尺寸,極大地加快了參數(shù)設(shè)計(jì)的效率.如圖3用戶(hù)定義特征的創(chuàng)建[8].

圖3 用戶(hù)定義特征的創(chuàng)建
(1)自定義庫(kù)文件:復(fù)制D: x9.0UGIIudfdbc_udf_ascii.def、udf_data base.txt兩個(gè)文件到自己的定義庫(kù)目錄;使用文本編輯器對(duì)dbc_udf_ascii.def文件進(jìn)行編輯,修改該文件重新定義庫(kù)的分類(lèi),編輯udf_database.txt文件,清空其系統(tǒng)UDF庫(kù)基礎(chǔ)數(shù)據(jù),并保存文件.
(2)配置庫(kù):用戶(hù)自定義特征庫(kù)定義文件與索引文件通過(guò):UG NX工具→用戶(hù)定義特征→配置庫(kù)來(lái)更改系統(tǒng)默認(rèn)庫(kù)目錄,重新配置庫(kù).
(3)UDF的創(chuàng)建與管理:通過(guò)UG NX工具用戶(hù)定義特征可以被創(chuàng)建或者被訪(fǎng)問(wèn),利用:利用UG NX工具→用戶(hù)定義特征→向?qū)Ы⒂脩?hù)自定義特征,用戶(hù)可對(duì)每一個(gè)新自定義特征進(jìn)行命名;用戶(hù)可根據(jù)自身需要,將part文件以及*.cgm文件一起存放于指定的目錄中.系統(tǒng)將會(huì)自動(dòng)在udf_database.txt文件中添加一條記錄,若該文件不存在,而用戶(hù)又沒(méi)有指定文件,那么系統(tǒng)將會(huì)自動(dòng)創(chuàng)建這個(gè)文件.
下面給出了圓柱滾子軸承程序創(chuàng)建過(guò)程[5]:
(1)在任意盤(pán)符下,創(chuàng)建文件夾層次:KFdfa_files.
(2)使用文本編輯器在dfa_files文件夾下創(chuàng)建一個(gè)gzzhounchen.dfa文件;(DFA文件即ASCII格式文件,字母DFA指的是DefClass/Defun File ASCII.以.dfa作后綴名的文件,在KF中僅用于類(lèi)和方法的定義中創(chuàng)建代碼).
(3)創(chuàng)建新文件,顯示知識(shí)融合導(dǎo)航器,如圖4所示.

圖4 知識(shí)融合導(dǎo)航器

圖5 識(shí)融合交互類(lèi)編輯器

圖6 知識(shí)融合類(lèi)的添加
(4)打開(kāi)知識(shí)融合交互類(lèi)編輯器,如圖5所示.通過(guò)部件瀏覽器添加部件,并給予部件變量的屬性值,如圖6所示.
(5)通過(guò)DFA類(lèi)瀏覽器,選擇需要?jiǎng)?chuàng)建對(duì)象的類(lèi),如圖6所示.下面以給出ug_udfs類(lèi),供參考:

(6)運(yùn)用知識(shí)融合交互類(lèi)編輯器內(nèi)代碼對(duì)gzzhounchen.dfa文件進(jìn)行編程,部分代碼如下:

(7)通過(guò)NX/Open MenuScript模塊開(kāi)發(fā)的菜單腳本文件,鏈接KF程序.
運(yùn)行程序,在軸承菜單中選擇不同類(lèi)型的軸承,彈出對(duì)應(yīng)對(duì)話(huà)框,點(diǎn)擊確定或應(yīng)用自動(dòng)創(chuàng)建零件,如圖7所示.當(dāng)軸承種類(lèi)相同,型號(hào)不同,可通過(guò)點(diǎn)擊下拉單選框“自定義”選項(xiàng)按鈕,彈出對(duì)應(yīng)對(duì)話(huà)框,輸入相應(yīng)參數(shù),實(shí)現(xiàn)同種不同型號(hào)軸承的創(chuàng)建,如圖8所示.

圖7 知識(shí)融合零件的創(chuàng)建

圖8 參數(shù)化設(shè)計(jì)界面
本文探討了對(duì)三維繪圖軟件UG NX的二次開(kāi)發(fā),最終實(shí)現(xiàn)對(duì)機(jī)械零件的三維幾何造型進(jìn)行參數(shù)化設(shè)計(jì),并且提供了一種標(biāo)準(zhǔn)件庫(kù)的建立方法.通過(guò)設(shè)計(jì)實(shí)例可知,采用知識(shí)融合的方法建立的動(dòng)態(tài)連接文件可以很好地與UG NX系統(tǒng)實(shí)現(xiàn)無(wú)縫集成,可以很大程度上滿(mǎn)足用戶(hù)對(duì)CAD系統(tǒng)二次開(kāi)發(fā)的需要.本方法對(duì)開(kāi)發(fā)高效、方便、功能強(qiáng)大的三維CAD系統(tǒng)是一種有效的嘗試.