陳伊璐,沈景鳳,仲梁維,卜 凡
(上海理工大學(xué)機械工程學(xué)院,上海200093))
隨著科技的發(fā)展和市場競爭的加劇,大量的重復(fù)勞作嚴(yán)重影響產(chǎn)品的開發(fā)效率。產(chǎn)品的更新?lián)Q代速度加快使得配套模具生命周期縮短,而傳統(tǒng)模具設(shè)計方法耗時長、設(shè)計人員工作量大。因此,模具快速設(shè)計系統(tǒng)的開發(fā)能有效彌補這些缺點,提高模具幾何模型設(shè)計和工程圖繪制的效率。知識工程(KBE)是一種主動的知識獲取與集成過程,即具有“自我生成”的知識繁衍機制,將知識工程應(yīng)用于快速設(shè)計系統(tǒng)的開發(fā)過程中,能解決目前參數(shù)化快速設(shè)計的諸多不足[1]。
Pro/E二次開發(fā)是借助第三方語言環(huán)境,通過Pro/E提供的接口工具,調(diào)用其底層函數(shù)和頭文件資源庫,以此來實現(xiàn)面向特定用戶的快速設(shè)計系統(tǒng)。傳統(tǒng)Pro/E二次開發(fā)大多采用以C語言為編譯環(huán)境的Pro/TOOLKIT[2]。Pro/Engineer Wildfire 4.0及以上的版本新增VB.NET的接口函數(shù),VB.NET簡單易學(xué)的特點使得用戶無需借助第三方工具即可直接進行編程,節(jié)省程序開發(fā)時間。
本設(shè)計基于Pro/E提供的VBAPI接口函數(shù),結(jié)合系統(tǒng)后臺推理機實現(xiàn)設(shè)計經(jīng)驗知識的應(yīng)用。該快速設(shè)計系統(tǒng)主要包含三個部分:符合要求的桿件模具的參數(shù)化模型,用戶設(shè)計系統(tǒng)和設(shè)計數(shù)據(jù)庫。整個快速設(shè)計系統(tǒng)的框架如圖1所示。

圖1 快速設(shè)計系統(tǒng)整體框架
參數(shù)化模型的建立是在Pro/E中完成,建模過程中的約束、關(guān)系、參數(shù)的創(chuàng)建都與擠壓模具的設(shè)計知識庫息息相關(guān),貫穿整個系統(tǒng)開發(fā)的過程。用戶設(shè)計系統(tǒng)包括用戶使用界面和后臺程序,是整個系統(tǒng)的核心,以VB.NET為編程語言搭建的系統(tǒng)交互界面為設(shè)計平臺,通過接口函數(shù)實現(xiàn)對其他程序的數(shù)據(jù)交換。
開發(fā)流程根據(jù)系統(tǒng)框架而定,依據(jù)上文所述,基于知識的擠壓模具快速設(shè)計系統(tǒng)開發(fā)流程主要分為三個步驟:設(shè)計數(shù)據(jù)庫搭建、參數(shù)化模型建立和用戶系統(tǒng)設(shè)計。開發(fā)流程如圖2所示。

圖2 快速設(shè)計系統(tǒng)開發(fā)流程
本文主要研究面向企業(yè)定制的快速設(shè)計系統(tǒng)——復(fù)合材料桿件擠壓模具快速設(shè)計,采用的是基于知識工程的快速設(shè)計,通過設(shè)計知識庫中的設(shè)計知識、經(jīng)驗公式、設(shè)計標(biāo)準(zhǔn)等內(nèi)容連接到幾何模型,對其進行設(shè)計。針對不同模具的類型和尺寸,經(jīng)過大量的模具設(shè)計經(jīng)驗,由提取的知識規(guī)則而編制的選取原則,快速匹配零件參數(shù),自動重生零件實體,進而生成模具。
設(shè)計數(shù)據(jù)庫包含相關(guān)設(shè)計知識庫和基礎(chǔ)設(shè)計數(shù)據(jù)庫?;A(chǔ)數(shù)據(jù)的選擇和建立需要考慮系統(tǒng)復(fù)雜程度和用戶所需參數(shù)化程度等因素,在實現(xiàn)功能的前提下力求系統(tǒng)簡潔。以復(fù)合材料方桿快速設(shè)計系統(tǒng)為例,基礎(chǔ)數(shù)據(jù)包括方桿的基本參數(shù)(長度、寬度和厚度)和技術(shù)參數(shù)(設(shè)計者、設(shè)計日期及編號)。
相關(guān)設(shè)計知識庫的搭建較為復(fù)雜,需要系統(tǒng)設(shè)計人員與模具設(shè)計人員交流溝通,獲取相關(guān)設(shè)計知識并進行組織和規(guī)范化,以適當(dāng)表達(dá)形式存放于知識庫中。擠壓模具設(shè)計系統(tǒng)所設(shè)計的零件參數(shù)、特征、位置和尺寸聯(lián)系,可分別以表格、公式等形式體現(xiàn)。圖3為系統(tǒng)的固定板知識規(guī)則表,修改表中的知識并保存后,新的設(shè)計方案將按照新的規(guī)則進行得到推理結(jié)果。

圖3 固定板的知識規(guī)則表
基于Pro/E二次開發(fā)的參數(shù)化模型可以將部分設(shè)計知識集成于桿件模具的三維模型、特征和裝配中,并通過關(guān)系、參照和約束等方法提高知識的利用率。如某些簡單且不會改變的知識元,可以在模型建立的時候使用幾何約束固化該知識。
(1)三維模型
一些經(jīng)驗公式和設(shè)計規(guī)則無法通過簡單的幾何約束表達(dá),此時可將規(guī)范化后的設(shè)計知識參數(shù)化,并集成在Pro/E的零件及裝配體中,使得設(shè)計結(jié)果有效可靠?;谥R工程的擠壓模具快速設(shè)計系統(tǒng)中的部分模芯關(guān)系如圖4所示,其中M-NAME、M-MATERIAL和DESIGN-ID等參數(shù)可根據(jù)用戶需求自行設(shè)定,既可在Pro/E的關(guān)系中使用,也用于系統(tǒng)界面輸入和后臺程序賦值[3]。

圖4 模芯的關(guān)系和參數(shù)
(2)二維工程圖模板
Pro/E軟件繪制的工程圖中的視圖都是基于三維模型的投影來建立的,視圖對模型的所有細(xì)節(jié)都有精確的體現(xiàn),理論上這樣的工程圖繪制是完全準(zhǔn)確的。但在實際的工程制圖中,為方便理解和繪制,會增加很多簡化的畫法和特殊規(guī)定的表示。比如當(dāng)剖面經(jīng)過螺紋孔的時候,只希望孔所在的零部件上填充剖面線而螺釘不填充,甚至直接將螺釘省去不繪制。因此在自定義圖框的基礎(chǔ)上建立合理的、符合設(shè)計要求的工程圖模型后,需要再根據(jù)國標(biāo)、航標(biāo)和企標(biāo)對工程圖細(xì)節(jié)部分進行調(diào)整修改以達(dá)到美觀的效果。
為將工程圖達(dá)到滿足企業(yè)設(shè)計標(biāo)準(zhǔn)的水平,使用了很多參數(shù)控制、位置約束、視圖修整、比例調(diào)整等方法[4]。如使用捕捉線定位尺寸、注釋;修改視圖原點控制視圖位置;修改圖層區(qū)別不同類型的圖元等。
在復(fù)合材料擠壓模具快速設(shè)計系統(tǒng)的開發(fā)中,本文采用了Microsoft Visual Studio 2008平臺中VB.NET作為開發(fā)語言,可以在 Windows XP和 Windows7等操作系統(tǒng)中運行。開發(fā)對象則選用的是Pro/E Wildfire5.0以及AutoCAD 2010。利用VB.net語言搭建系統(tǒng)程序?qū)ro/E、Access、AutoCAD的二次開發(fā)來實現(xiàn)各軟件之間的集成。
用戶設(shè)計系統(tǒng)包括用戶使用界面和后臺程序,使用界面如圖5所示。界面加載的過程中,系統(tǒng)會從設(shè)計案例庫中讀取歷史的設(shè)計者,并將設(shè)計者的信息寫入到對應(yīng)的可選文本框中,方便設(shè)計工程師選擇。使用快速設(shè)計系統(tǒng)設(shè)計成功的案例,會被記錄到數(shù)據(jù)庫當(dāng)中,通過界面的“查詢歷史設(shè)計”就能進入查詢系統(tǒng)。

圖5 擠壓模具快速設(shè)計系統(tǒng)使用界面
經(jīng)過對設(shè)計知識的整理以及對設(shè)計需求的分析,本設(shè)計系統(tǒng)主要修改的信息為需要該擠壓模具進行生產(chǎn)的產(chǎn)品的參數(shù)信息,比如產(chǎn)品寬度、高度、長度、壁厚情況、倒角情況。參數(shù)輸入完成后點擊“三維模具設(shè)計”按鈕,設(shè)計系統(tǒng)就會根據(jù)集成的該類型模具的設(shè)計知識數(shù)據(jù)庫和推理機進行推理分析,自動檢測參數(shù)是否合理,過程中會彈出相應(yīng)的提醒對話框,如圖6所示。

圖6 設(shè)計過程中的部分提示框
通過數(shù)據(jù)檢測之后,系統(tǒng)運行Pro/E開始正式的設(shè)計過程。按鈕“導(dǎo)出設(shè)計文檔”用于導(dǎo)出設(shè)計完成后的所有二維設(shè)計文檔。
通過VB API的開發(fā)程序只能是異步式的,簡單異步模式啟動Pro/E和打開模型的主要代碼如下[5]。其中,Path為Pro/E執(zhí)行程序的全路徑;WD為程序啟動后期望的工作路徑;Model Type為將要打開的模型類型;ModelName為模型的全路徑。
Dim newCon As Ipfc AsyncConnection=Nothing
Dim c AC As CCpfc AsyncConnection
Dim se As IpfcBaseSession
c AC=New CCpfc AsyncConnection
newCon=c AC.Start(Path,".")
se=asyncConnection.Session
newCon.Session.ChangeDirectory(WD)
Dim new Model As Ipfc ModelDescriptor
Dim model As Ipfc Model
Dim CMD As CCpfc ModelDescriptor
CMD=New CCpfc ModelDescriptor
new Model=CMD.Create(Model Type,ModelName,Nothing)
model=se.RetrieveModel(new Model)
model.Display()
模型中的參數(shù)有零件、特征、繼承等類型,數(shù)量繁多,因此通過循環(huán)語句,如For…Next循環(huán)的語句進行檢索判斷,獲取目標(biāo)參數(shù),進行修改[6]。以下是循環(huán)修改模型參數(shù)的主要代碼:
Dim param Val As IpfcParam Value
Dim param As IpfcParameter
Dim params As CpfcParameters
Dim paramUnit As Ipfc Unit
Dim model As Ipfc Model
model=session.Current Model
params=CType(model,IpfcParameterOwner).ListParams()
For i=0 To params.Count-1
param=params.Item(i)
paramUnit=param.Units
Select Case param.Name
Case Parameter A
paramVal=PDUtils.createParamValue(Value,Type)
param.SetScaled Value(paramValue,paramunit)
Case Parameter B
paramVal=PDUtils.createParamValue(Value,Type)
param.SetScaled Value(param Value,paramunit)
…
End Select
Next
其中Parameter X為需要修改的目標(biāo)參數(shù);PDU-tils為自定義類,通過CMpfc ModelItem接口修改參數(shù)值;Value和Type分別為期望修改的參數(shù)值和參數(shù)類型。
修改完成后的模型需要再生、保存。裝配體再生的主要代碼如下:
Dim regInstr As IpfcRegenInstructions
Dim solid As IpfcSolid
regInstr= (New CCpfcRegenInstructions).Create(True,True,Nothing)
model=aC.Session.Current Model
solid=CType(model,Ipfc Assembly)
solid.Regenerate(regInstr)
Ipfc AsyncConnection.Session.Get ModelWindow(solid).Repaint()
model.Save()
隨著復(fù)合材料的廣泛應(yīng)用,各個企業(yè)都迫切地希望通過提高設(shè)計效率以達(dá)到降低企業(yè)成本、提高企業(yè)綜合競爭力的目的,使得現(xiàn)代化快速設(shè)計系統(tǒng)成為重要發(fā)展趨勢。鑒于個人能力水平的限制,系統(tǒng)功能的實現(xiàn)方法和研究范圍還有待于更深入的研究。如知識集成的建模方法將部分知識固化在模型當(dāng)中,隨著設(shè)計技術(shù)的更新,如果有固化知識的準(zhǔn)則變更,設(shè)計工程師需要對模型模板進行修改,降低了系統(tǒng)靈活性。
[1]何利民,郭 力.鈦合金磨削加工研究的進展[J].精密制造與自動化,2008,(2):8-13.
[2]李如忠.Pro/Toolkit快速開發(fā)方法研究[J].信息技術(shù),2014,10:121-124+133.
[3]張繼春.Pro/ENGINEER二次開發(fā)實用教程[M].北京:北京大學(xué)出版社,2003.
[4]劉 龍,朱林波.基于VB.NET的Pro/E二次開發(fā)關(guān)鍵技術(shù)[J].現(xiàn)代制造工程,2008,(10):63-65.
[5]Parametric Technology Corporation.Pro/ENGINEER Wildfire 5.0 VB API User’s Guide[M].USA:PTC,2010.
[6]黃 愷,李 雷,劉 杰.Pro/E參數(shù)化設(shè)計高級應(yīng)用教程[M].北京:化學(xué)工業(yè)出版社,2008.