徐 靂 于 婧 翟元盛
[摘 要]針對目前國內(nèi)汽車模具行業(yè)用的大型三維CAD軟件自帶零件庫不足的問題,建立一種基于CATIA知識顧問技術(shù)的沖壓模具零件庫,設(shè)計基于知識的零件模型庫,零件信息數(shù)據(jù)庫,使用VB構(gòu)建控制界面,以斜楔零件庫為例驗證該方案實(shí)際應(yīng)用情況。
[關(guān)鍵詞]零件庫 參數(shù)化 知識顧問 二次開發(fā) CATIA
[中圖分類號]TP391[文獻(xiàn)標(biāo)識碼]A [文章編號]1007-9416(2009)12-0069-03
為解決目前國內(nèi)引進(jìn)的一些大型三維CAD軟件提供的標(biāo)準(zhǔn)件庫資料不全,與國內(nèi)的設(shè)計標(biāo)準(zhǔn)、規(guī)范存在差異,不能在企業(yè)設(shè)計工程中發(fā)揮有效作用的現(xiàn)狀,提出了建立三維CAD軟件零件庫的需求。
CATIA系統(tǒng)已成為汽車模具行業(yè)的主流CAD平臺,其零件庫的開發(fā)已成為數(shù)字化產(chǎn)品定義和模具快速設(shè)計的關(guān)鍵。本文選用VB開發(fā)環(huán)境下的二次開發(fā)方法,將CATIA的庫文件加入程序框架,引用類對象、函數(shù)等進(jìn)行二次開發(fā)。VB使用腳本語言,界面友好可滿足功能,且上手快,能夠提高開發(fā)效率。
1 零件庫的設(shè)計方案
經(jīng)過分析建立沖壓模具的零件庫主要應(yīng)具備零件智能設(shè)計功能,自動參數(shù)化建模,提供各種零件信息,同時界面友好,易于用戶理解。根據(jù)上述功能要求,本文所開發(fā)的沖壓模具零件庫需進(jìn)行三部分設(shè)計,沖壓模具零件模型,零件信息管理數(shù)據(jù)庫和用戶交互界面。
設(shè)計過程:
(1)在CATIA V5平臺上建立零件、非標(biāo)準(zhǔn)件及斜楔三維零件模型。
(2)提取零件設(shè)計與約束信息,在CATIA V5知識工程模塊下編寫零件的知識信息語句,實(shí)現(xiàn)零件的參數(shù)約束,設(shè)計規(guī)則檢查,數(shù)據(jù)更新等智能設(shè)計功能,建立零件參數(shù)驅(qū)動基礎(chǔ)。
(3)建立標(biāo)準(zhǔn)件、非標(biāo)準(zhǔn)件及斜楔零件庫的特征參數(shù)數(shù)據(jù)庫,用于在系統(tǒng)界面中顯示零件的特征參數(shù)。
(4)以Visual Basic 6.0作為開發(fā)語言,結(jié)合CATIA V5軟件的二次開發(fā)技術(shù),對前面所建的零件模型在知識工程模塊中進(jìn)行參數(shù)化驅(qū)動。
(5)利用Visual Basic6.0分別定制標(biāo)準(zhǔn)件庫、斜楔和非標(biāo)準(zhǔn)件零件庫的用戶界面;開發(fā)客戶端沖壓模具零件庫系統(tǒng),調(diào)用ACCESS數(shù)據(jù)庫實(shí)現(xiàn)零件參數(shù)的選擇,以上一步編寫的程序驅(qū)動零件模型,并通過CATIA V5知識工程模塊實(shí)現(xiàn)零件智能設(shè)計功能,最終完成沖壓模具零件設(shè)計信息查詢、瀏覽,零件參數(shù)化模型的下載或者重新生成功能。本文將以斜楔零件為例,零件庫工作流程如圖1。
所謂智能設(shè)計是利用CATIA知識功能模塊,將從專家經(jīng)驗、各種標(biāo)準(zhǔn)、技術(shù)規(guī)范、數(shù)據(jù)獲取知識建立規(guī)則和約束表示出來,形成推理,使設(shè)計者在外部程序中輸入的零件參數(shù)在CATIA中生成新的零件模型。
2 零件模型的建立
本文運(yùn)用參數(shù)化和知識的運(yùn)用來實(shí)現(xiàn)零件庫的功能。參數(shù)化設(shè)計過程限制圖形幾何元素之間的相互位置及連接關(guān)系,通過尺寸驅(qū)動方式解決問題。由尺寸約束建立的模型受到約束,改變相應(yīng)的參數(shù),生成新零件模型。同時CATIA提供了運(yùn)用知識工程的參數(shù)化設(shè)計手段。知識工程可以把產(chǎn)品的設(shè)計知識用知識工程原理表達(dá)出來,組成一個產(chǎn)品知識庫,指導(dǎo)設(shè)計人員完成產(chǎn)品創(chuàng)新。這兩種技術(shù)的結(jié)合使用避免了設(shè)計中的重復(fù)勞動,又使得設(shè)計的精度提高。以下將以斜楔為例介紹零件模型建立過程。
(1)創(chuàng)建零件模型:根據(jù)沖壓模具標(biāo)準(zhǔn)件手冊,分別對斜楔塊、滑塊、上底座進(jìn)行設(shè)計。在零件建模同時,選擇CATIA的RECORDING MACRO功能,錄制宏文件。用作VB中驅(qū)動零件生成的腳本。
三維零件參數(shù)化驅(qū)動部分代碼如下:
If list1.list(0) = true Then
Dim documents1 As Documents
Set documents1 = catia.Documents
Dim partDocument1 As PartDocument
Set partDocument1 = documents1.Open("F:…模型圖斜楔塊.CATPart")
(2)設(shè)立用戶參數(shù):對一個圖形,可能的約束十分復(fù)雜,且數(shù)量很大,但實(shí)際由用戶控制的,即能夠獨(dú)立變化的參數(shù)一般只有幾個,稱之為主參數(shù)或主約束。建立用戶參數(shù)與主參數(shù)對應(yīng),分析兩者之間的關(guān)系,并建立公式(Formula)顯式地表達(dá),通過用戶參數(shù)控制零件的三維模型。
(3)建立公式:利用公式控制設(shè)計對象結(jié)構(gòu)和尺寸,能對企業(yè)產(chǎn)品設(shè)計進(jìn)行規(guī)范化,并在今后的設(shè)計中重用。進(jìn)入公式編輯區(qū)域,在參數(shù)列表中選擇要進(jìn)行約束的參數(shù)名,輸入關(guān)系表達(dá)式。部分公式如下:
PartBodyPad.1Sketch.1Length.8Length=W1
PartBodyPad.1FirstLimitLength=h1
PartBodyPad.2Sketch.6Length.56Length=H1-h1
PartBodyPad.2Sketch.6Offset.119Offset=S1 PartBodyPad.2Sketch.6Angel.118Angel=a
(4)建立規(guī)則。在手動輸入斜楔參數(shù)時,因為零件參數(shù)與數(shù)據(jù)庫中存在的數(shù)據(jù)不同,要通過參數(shù)驅(qū)動生成新零件就要應(yīng)用知識工程技術(shù)的規(guī)則。在CATIA V5知識顧問模塊中采用產(chǎn)生式規(guī)則,建立斜楔零件的選擇規(guī)則和裝配規(guī)則,其作用是由規(guī)則和外部關(guān)聯(lián)元素來驅(qū)動設(shè)計與裝配。以類型選擇規(guī)則為例,在特征樹下新建字符串參數(shù),選擇多值類型名為“TYPE”,相應(yīng)值為9種斜楔型號,以根據(jù)輸入的參數(shù)值自動選擇相應(yīng)類型的參數(shù)。進(jìn)入知識顧問模塊,建立類型選擇推理部分語句為:
if TYPE="B-UCMSC80-00" THEN PartBodyPad1.Sketch.1Lng.8Activity=true
PartBodyPad3.Activity=false
Else
PartBodyPad1.Sketch.1Lng.8Activity=false
PartBodyPad3.Activity=true
(5)建立檢查。檢查是用來表達(dá)各種企業(yè)規(guī)范的判斷語句,通過判別模型中有關(guān)參數(shù)和特征的變化情況反映模型出現(xiàn)的異常。根據(jù)手冊要求,建立滑塊底面寬度S2必須比長度W2大,選擇警告模式(Warning),當(dāng)設(shè)計的參數(shù)不符合規(guī)則時,即“S2≤W2”時,彈出警告信息框“S2>W2 is wrong. please check”,提示設(shè)計者修改參數(shù)。
(6)裝配零件。確定裝配體中零件相對位置和方向的定位關(guān)系為主要裝配規(guī)則;選擇斜楔三部分的接觸面,確定法線方向,這些規(guī)則將用于新參數(shù)驅(qū)動生成的斜楔模型保持正確的裝配關(guān)系。手動裝配斜楔塊,滑塊,上底座,得到斜楔三維模型圖。
3 標(biāo)準(zhǔn)件數(shù)據(jù)庫設(shè)計
使用數(shù)據(jù)庫主要是實(shí)現(xiàn)對標(biāo)準(zhǔn)件分類和參數(shù)信息的分類管理。數(shù)據(jù)庫文件采用Microsoft Access2000的數(shù)據(jù)文件。表內(nèi)每種類型的信息只保存一次,這樣使數(shù)據(jù)庫更有效。本文中設(shè)計三個表格,分別為斜楔塊,滑塊和上底座用戶參數(shù),每一行代表一組參數(shù)信息。在零件設(shè)計系統(tǒng)中將通過窗體對象顯示和調(diào)用這些參數(shù)。
4 零件庫的建立
利用CATIA為用戶提供的二次開發(fā)接口和開放式的內(nèi)部命令集合建立零件庫。在CATIA中建立基于知識工程的零件的零件圖,通過VB環(huán)境編程得到一個可視化的具有交互性的系統(tǒng),驅(qū)動CATIA生成零件圖。
建立VB與CATIA的連接。通過VB訪問CATIA是一種進(jìn)程外腳本訪問方式,外部程序通過COM接口來訪問CATIA內(nèi)部的對象。[2]VB將CATIA作為引用對象連接,在VB[工程]/[引用]選項中選擇選擇與CATIA相關(guān)的全部對象庫。沖壓模具標(biāo)準(zhǔn)件庫通過ADO技術(shù)訪問數(shù)據(jù)庫,實(shí)現(xiàn)數(shù)據(jù)庫的添加,查詢,修改等功能。建立零件庫內(nèi)部代碼,調(diào)用CATIA,完成零件庫功能。當(dāng)用戶選擇某種型號的斜楔模型輸入新的數(shù)據(jù)時,通過參數(shù)驅(qū)動方式生成新的模型;當(dāng)用戶輸入任意的參數(shù)值時通過知識工程的推理過程尋找相同或相近的模型,在此模型基礎(chǔ)上再通過參數(shù)驅(qū)動生成新模型。
結(jié)語
本文利用VB將CATIA二次開發(fā)功能和ACCESS數(shù)據(jù)庫結(jié)合起來,設(shè)計出了一種基于知識的汽車沖壓模具零件庫。以斜楔為例,通過智能驅(qū)動生成了零件模型,實(shí)現(xiàn)了系統(tǒng)功能。建立基于知識的沖壓模具零件庫有利于提高模具設(shè)計效率,交互性強(qiáng),具有一定實(shí)際意義。
[參考文獻(xiàn)]
[1] 劉冰,魯墨武.基于CATIA的三維標(biāo)準(zhǔn)件庫開發(fā)[J].沈陽航空工業(yè)學(xué)院報,2005,22(5):30-32.
[2] 胡挺,吳立軍.CATIA二次開發(fā)技術(shù)基礎(chǔ)[M].北京:電子工業(yè)出版社.2006.
[3] 鄭可煌.實(shí)用沖壓模具的設(shè)計手冊[M].北京:宇航出版社.1990.
[4] 顧曉華,鐘梁維.基于知識工程的參數(shù)化設(shè)計[J].機(jī)械設(shè)計與制造工程,2001(4):17-18.
[5] 王智明,楊旭,平海濤.知識工程及專家系統(tǒng)[M].北京:化學(xué)工業(yè)出版社.2006.