汪劍+沈景鳳+仲梁維
摘要:由于擠壓模具具有較復(fù)雜的結(jié)構(gòu)和單件生產(chǎn)的特性,目前在國內(nèi)市場上還沒有一款商用系統(tǒng)專門用于擠壓模具的設(shè)計(jì)。為了給設(shè)計(jì)人員在擠壓模具設(shè)計(jì)過程中提供更高效、便捷的知識服務(wù),結(jié)合專家經(jīng)驗(yàn)、數(shù)據(jù)庫知識和Pro/E參數(shù)化技術(shù),以VB.NET為編程設(shè)計(jì)平臺,通過接口工具,開發(fā)了基于參數(shù)化的擠壓模具專用CAD敏捷設(shè)計(jì)系統(tǒng),實(shí)現(xiàn)了新設(shè)計(jì)方案的快速生成,提升了開發(fā)設(shè)計(jì)效率和企業(yè)競爭力。
關(guān)鍵詞:擠壓模具;Pro/E參數(shù)化;VB.NET;敏捷設(shè)計(jì)
中圖分類號:TP319
文獻(xiàn)標(biāo)識碼:A
文章編號:16727800(2017)004011404
0引言
在經(jīng)濟(jì)全球化背景下,每一個制造企業(yè)都面臨著激烈競爭,企業(yè)不得不尋找提升競爭力的方法,以保證在短時間內(nèi)為大量具有不同設(shè)計(jì)要求的客戶快速提供解決方案,同時又能確保產(chǎn)品質(zhì)量。隨著計(jì)算機(jī)、信息化和自動化等技術(shù)的蓬勃發(fā)展,以它們?yōu)榛A(chǔ)的CAD/CAE/CAM集成設(shè)計(jì)系統(tǒng)也在制造企業(yè)中得到了廣泛應(yīng)用,很大程度上提高了擠壓模具三維幾何模型設(shè)計(jì)和工程圖繪制的效率,在提高擠壓模具設(shè)計(jì)效率、設(shè)計(jì)質(zhì)量和開發(fā)能力等方面發(fā)揮了重要作用,同時也提升了企業(yè)自身競爭力[13]。
1敏捷設(shè)計(jì)系統(tǒng)
1.1敏捷設(shè)計(jì)系統(tǒng)運(yùn)行流程
設(shè)計(jì)工程師通過擠壓模具敏捷設(shè)計(jì)系統(tǒng)的人機(jī)交互界面填寫設(shè)計(jì)方案的相關(guān)設(shè)計(jì)數(shù)據(jù),系統(tǒng)將這些數(shù)據(jù)和模型中的知識,通過推理機(jī)進(jìn)行分析判斷。如果不合理,將返回交互界面提示設(shè)計(jì)工程師進(jìn)行修改,或直接對設(shè)計(jì)知識進(jìn)行臨時性或永久性修改;否則將推理得到的設(shè)計(jì)方案、結(jié)構(gòu)形式和幾何參數(shù)等結(jié)果輸入到數(shù)字模型中,進(jìn)行擠壓模具的自動設(shè)計(jì)。最終得到敏捷設(shè)計(jì)系統(tǒng)自動設(shè)計(jì)的一系列數(shù)據(jù)文件,敏捷設(shè)計(jì)系統(tǒng)運(yùn)行流程如圖1所示。
1.2敏捷設(shè)計(jì)系統(tǒng)結(jié)構(gòu)搭建
Pro/E敏捷設(shè)計(jì)系統(tǒng)是以第三方語言為編程環(huán)境,通過Pro/E三維軟件提供的接口工具,調(diào)取頭文件資源數(shù)據(jù)庫和底層函數(shù)資源庫,以此開發(fā)面向特定使用者的敏捷設(shè)計(jì)系統(tǒng)[46]。傳統(tǒng)的Pro/E二次開發(fā)大多采用Pro/TOOLKIT進(jìn)行,而C語言的語法規(guī)則較為復(fù)雜,設(shè)計(jì)者對指針的使用較難掌握。為滿足用戶使用VB.NET進(jìn)行二次開發(fā)的需求,PTC(Parametric Technology Corporation)公司從Pro/Engineer Wildfire 4.0版本開始,增加了用于Visual Basic.NET(VB.NET)開發(fā)的VB VPI接口工具。用戶可以通過簡單易學(xué)的VB.NET編寫應(yīng)用程序,直接使用VB VPI而無需借助第三方工具,加快程序運(yùn)行速度,縮短程序開發(fā)時間。 本文基于三維設(shè)計(jì)軟件Pro/E提供的VB API接口工具,與系統(tǒng)后臺程序——推理機(jī)實(shí)現(xiàn)經(jīng)驗(yàn)設(shè)計(jì)知識的應(yīng)用。系統(tǒng)后臺運(yùn)行程序是整個敏捷設(shè)計(jì)系統(tǒng)的核心,通過接口工具函數(shù)可實(shí)現(xiàn)對其它程序的數(shù)據(jù)交換,利用知識庫中的知識處理設(shè)計(jì)工程給出的初始設(shè)計(jì)參數(shù),再利用處理結(jié)果,通過對Pro/E平臺的智能控制,修改基礎(chǔ)模型及其它設(shè)計(jì)文件,最后輸出設(shè)計(jì)結(jié)果。整套敏捷設(shè)計(jì)系統(tǒng)結(jié)構(gòu)如圖2所示。
1.3數(shù)字模型結(jié)構(gòu)
數(shù)字模型是一切數(shù)據(jù)信息的基礎(chǔ)和基體,它將大部分設(shè)計(jì)數(shù)據(jù)和設(shè)計(jì)經(jīng)驗(yàn)等知識形式化和結(jié)構(gòu)化后,表述在可視化的三維模型文件中,并體現(xiàn)在模型的幾何信息和非幾何信息兩方面。其中,幾何信息包括模型尺寸、特征、結(jié)構(gòu)和零部件組成等三維模型數(shù)據(jù),非幾何信息包括設(shè)計(jì)信息、設(shè)計(jì)標(biāo)準(zhǔn)和計(jì)算報(bào)告等,主要體現(xiàn)在二維模型和設(shè)計(jì)文檔中。
2擠壓模具敏捷設(shè)計(jì)系統(tǒng)實(shí)現(xiàn)
隨著三維計(jì)算機(jī)輔助設(shè)計(jì)技術(shù)的日益成熟,一些功能豐富、操作簡便的三維設(shè)計(jì)軟件,也越來越受到人們青睞。相比于傳統(tǒng)的手工設(shè)計(jì)和二維CAD設(shè)計(jì),這些三維軟件能夠有效地改善設(shè)計(jì)柔性,提高零部件設(shè)計(jì)效率。但是這些三維軟件通常面向所有的用戶群體,無法針對每一使用者的個性化敏捷設(shè)計(jì)需求。 本文基于Pro/E參數(shù)化的擠壓模具敏捷設(shè)計(jì)系統(tǒng)開發(fā)流程主要分為三大部分:①設(shè)計(jì)數(shù)據(jù)庫搭建;②交互式界面系統(tǒng)設(shè)計(jì);③模型庫建立。敏捷設(shè)計(jì)系統(tǒng)開發(fā)流程如圖3所示。
2.1設(shè)計(jì)數(shù)據(jù)庫搭建
設(shè)計(jì)數(shù)據(jù)庫的搭建主要包括基礎(chǔ)設(shè)計(jì)數(shù)據(jù)庫和設(shè)計(jì)知識庫兩大部分。前者只要根據(jù)設(shè)計(jì)需求設(shè)計(jì)相應(yīng)的設(shè)計(jì)表,再結(jié)合數(shù)據(jù)庫管理知識,為不同表格建立合適的主鍵和外鍵將其關(guān)聯(lián)起來;后者需要與設(shè)計(jì)專家進(jìn)行溝通和討論,總結(jié)歸納專家的經(jīng)驗(yàn)與設(shè)計(jì)知識,并通過文本形式運(yùn)用知識表述方法將其規(guī)則化、公式化,然后對其進(jìn)行有效存儲。
設(shè)計(jì)知識庫包括規(guī)則化的設(shè)計(jì)知識和歷史成功案例的關(guān)鍵數(shù)據(jù),以數(shù)據(jù)形式存儲于數(shù)據(jù)庫中,從而實(shí)現(xiàn)系統(tǒng)內(nèi)部的知識共享和重復(fù)使用,圖4為擠壓模具設(shè)計(jì)的數(shù)據(jù)庫部分。
系統(tǒng)讀取調(diào)用設(shè)計(jì)知識庫,通過內(nèi)部推理機(jī)結(jié)合設(shè)計(jì)知識對設(shè)計(jì)工程師輸入的設(shè)計(jì)參數(shù)進(jìn)行分析、計(jì)算,得出結(jié)果,輸出到基礎(chǔ)數(shù)據(jù)模型,用于新設(shè)計(jì)的參數(shù)化驅(qū)動,最終得到符合設(shè)計(jì)需求的設(shè)計(jì)結(jié)果。
2.2交互式界面系統(tǒng)設(shè)計(jì)
交互式界面系統(tǒng)主要由交互式界面和后臺功能函數(shù)組成。交互式界面不僅要滿足設(shè)計(jì)工程師的設(shè)計(jì)需求,而且需要具有一定的美觀性、合理性。后臺函數(shù)是功能實(shí)現(xiàn)的關(guān)鍵所在,也是與其它模塊橋接的關(guān)鍵。 由于Microsoft Visual Studio 2008平臺中的VB.NET具有完備的功能和易學(xué)易用的特點(diǎn),因而被廣泛應(yīng)用于各類開發(fā)工作中,本文采用VB.NET作為開發(fā)語言。開發(fā)對象根據(jù)企業(yè)需求進(jìn)行針對性選擇,本文選用PTC公司的Pro/E Wildfire 5.0及Autodesk公司的Auto CAD 2010[7]。 交互式界面系統(tǒng)用戶使用界面如圖5所示。在用戶使用界面加載過程中,系統(tǒng)從之前的設(shè)計(jì)成功案例知識數(shù)據(jù)庫中調(diào)取歷史設(shè)計(jì)者的相關(guān)信息,并將其寫入到相應(yīng)的文本框中,以方便設(shè)計(jì)工程師選擇[7]。設(shè)計(jì)編號中將固定不變的序列字符串提出,以減少設(shè)計(jì)工程師對此處的修改量。 使用快速敏捷設(shè)計(jì)系統(tǒng)設(shè)計(jì)成功的案例,會被記錄到設(shè)計(jì)庫中。通過交互式界面的“查詢歷史設(shè)計(jì)”按鈕即可進(jìn)入查詢系統(tǒng),如圖6所示。查詢系統(tǒng)提供的歷史數(shù)據(jù)能方便工程師選用歷史相近的設(shè)計(jì)參數(shù)填入設(shè)計(jì)界面。查詢系統(tǒng)集成了簡單但非常實(shí)用的查詢過濾功能,通過模糊和具體條件綜合檢索,當(dāng)設(shè)計(jì)歷史數(shù)據(jù)較多時,能夠很容易找到所需的歷史數(shù)據(jù)。
2.3參數(shù)化模型建立
PTC公司推出的Pro/E以其參數(shù)化設(shè)計(jì)而頗受工程師歡迎,它能夠?qū)a(chǎn)品設(shè)計(jì)的機(jī)械結(jié)構(gòu)、幾何特征、屬性、參數(shù)以及大量的產(chǎn)品相關(guān)知識和專家經(jīng)驗(yàn)融合到模型中。本文基于全息建模原理對擠壓模具進(jìn)行數(shù)據(jù)模型的創(chuàng)建,將與產(chǎn)品相關(guān)的設(shè)計(jì)知識直接集成于對象模型的三維幾何、特征、裝配、參數(shù)化和結(jié)構(gòu)化等屬性信息中,并通過約束、參照關(guān)系等方法減少知識的重復(fù)表示。 僅靠簡單的幾何約束無法滿足復(fù)雜的擠壓模具設(shè)計(jì)要求,比如一些經(jīng)驗(yàn)公式和設(shè)計(jì)規(guī)則無法通過幾何約束來表示。Pro/E軟件中的參數(shù)和關(guān)系功能模塊則可將公式和規(guī)則等知識集成到模型中,通過對模型參數(shù)和關(guān)系的定義就能夠?qū)⒃O(shè)計(jì)知識集成到模型里,模型中的參數(shù)和關(guān)系如圖7所示。
3基于VB API的二次開發(fā)關(guān)鍵技術(shù)
3.1連接啟動Pro/E的方法
VB.NET對Pro/E的開發(fā)只能是異步式的,程序通過VB API接口啟動Pro/E程序或者連接到其正在運(yùn)行的會話中,再通過調(diào)用API函數(shù)對Pro/E進(jìn)行數(shù)據(jù)和操作等方面的控制。 通過運(yùn)行簡單的異步式代碼即可實(shí)現(xiàn)連接并啟動Pro/E和驅(qū)動模型,代碼如下[8]: Dim asyncConnection As IpfcAsyncConnection=Nothing Dim cAC As CCpfcAsyncConnection Dim session As IpfcBaseSession cAC=New CCpfeAsyncConnection asyncConnection=cAC.Start(exePath,”.”) session= asyncConnection.Session asyncConnection.Session.ChangeDirectory(workDir) Dim descModel As IpfcModelDescriptor Dim model As IpfcModel Dim CMD As CCpfcModelDescriptor CMD=New CCpfcModelDescriptor descModel=CMD.Create(ModelType,Mode1Name,Nothing) model=session.RetrieveModel(descModel) model.Display() 其中,exepath為Pro/E安裝程序的全路徑,workdir為程序啟動后可另存的工作路徑,modeltype為將要打開模型的類型,modelname為模型的全路徑。
3.2模型再生
由于Pro/E Wildfire 5.0版本的更新,將選項(xiàng)中再生失敗解決模式的默認(rèn)值改為不解決模式,因此無法正常使用API函數(shù)對裝配體模型再生,但是對單個零件仍可以生效。在工具菜單下的選項(xiàng)中,查找regen_failure_handing選項(xiàng),將值改為resolve_mode后即可進(jìn)行正常的裝配體再生。 再生裝配體代碼如下[8]: Dim regInstr As IpfcRegenInstructions Dim solid As IpfcSolid regInstr =(New CCpfcRegenInstructions).Create(True,True,Nothing) rmodel = session.CurrentModel solid = CType(rmodel,IpfcAssembly) solid.Regenerate(regInstr) solid.display() session.GetModelWindow(solid).Repaint() rmodel.Save()
3.3工程圖調(diào)整與格式轉(zhuǎn)換
(1)視圖比例調(diào)整。工程圖的繪制都有嚴(yán)格標(biāo)準(zhǔn),通常軟件中提供的設(shè)置即能滿足工程圖繪制要求。但是在敏捷設(shè)計(jì)系統(tǒng)中的基礎(chǔ)模型通常有且只有一套基礎(chǔ)二維圖紙,在實(shí)際設(shè)計(jì)過程中會有較大尺寸的跨度。此時,固定的圖紙比例將無法保證視圖在圖紙中有合理大小。在工程圖文件中,經(jīng)常會出現(xiàn)同一張圖紙頁面含有多個模型,或者在工程圖中含有多個頁面的情況。本文使用集合的方式對其進(jìn)行統(tǒng)一修改,然后更新頁面。 圖紙比例修改的主要代碼如下: Dim models As IpfcModels Dim model As IpfcModel Dim drawing As Ipfcdrawing Dim modelscales=New single(){P1,P2,...Pn} Dim scalesheets As Integer()=New Integer(){S1,S2,...Sn} models=drawing.listModles() For i=0 To n-1 model=dmodels(i) drawing.SetSheetScale(scalesheets(i),modelscales(i),model) Next For i=1 To drawingNumberOfSheets drawing.CurrentSheetNumber=i drawing.RegenerateSheet(i) Next 其中,n表示工程圖文件中含有的模型數(shù)量,modelscales表示每個需要調(diào)整視圖的期望比例Pn集合,scalesheets表示視圖模型所在頁面編號Sn的集合。modelscales和scalesheets二者需要一一對應(yīng),否則在SetSheetScale時會將視圖調(diào)整為錯誤比例,甚至出現(xiàn)其它錯誤。 (2)圖紙格式轉(zhuǎn)換。Pro/E工程圖中包含了大量信息,便于修改,但是針對保密性較強(qiáng)的企業(yè),或者要將數(shù)據(jù)外發(fā)時,則往往不方便工作人員使用。將工程圖輸出為絕大多數(shù)公司都能方便查看的PDF或DWG格式,不僅可以壓縮數(shù)據(jù),還可以方便數(shù)據(jù)的查閱和存檔。 工程圖轉(zhuǎn)換為PDF格式的代碼如下[9]: Dim PDFinstructions As IpfcPDFExportInstructions PDFinstructions =(New CCpfcPDFExportInstructions).Create() rmodel.Export(outdir,PDFinstructions) 其中,outdir表示PDF文件輸出的全路徑,該名稱不能超過30個字符。4結(jié)語
本文研究了基于VB.NET的Pro/E開發(fā)方法,結(jié)合設(shè)計(jì)數(shù)據(jù)庫和設(shè)計(jì)知識庫,實(shí)現(xiàn)了不同類型知識在敏捷設(shè)計(jì)系統(tǒng)中的集成,有效提高了系統(tǒng)運(yùn)行效率,同時也完成了跨平臺程序連接、目標(biāo)參數(shù)化、尺寸提取及輸入、三維模型驅(qū)動、工程圖調(diào)整和文檔多格式導(dǎo)出等關(guān)鍵系統(tǒng)功能。使用Pro/E二次開發(fā)技術(shù)極大地提高了設(shè)計(jì)效率,縮短了產(chǎn)品設(shè)計(jì)周期,提高了企業(yè)競爭力。該技術(shù)順應(yīng)了智能制造的時代趨勢,具有重大意義,并對其它類似產(chǎn)品敏捷系統(tǒng)的開發(fā)設(shè)計(jì)具有借鑒作用。
參考文獻(xiàn):[1]黃龍生,陳鳳華.機(jī)械制造控制系統(tǒng)的自動化技術(shù)初步探索[J].中國科技博覽,2010(21):9.
[2]SHOUMING HOU,YONGXIAN LIU.Research on knowledge-based engineering system for rapid response design of machine tool[C].2010 Chinese Control and Decision Conference(CCDC).Shang Hai,China,2010:867869.
[3]黃志高.基于知識的塑料注射模集成設(shè)計(jì)系統(tǒng)研究[D].武漢:武漢科技大學(xué),2009.
[4]劉龍,朱林波.基于VB的Pro/E二次開發(fā)方法的再探討[J].金屬加工冷加工,2009(13):6567.
[5]李如忠.Pro/Toolkit快速開發(fā)方法研究[J].信息技術(shù),2014(10):121124,133.
[6]劉慶立,曹巨江,姚素芬,等.利用Visual Basic對Pro/E進(jìn)行二次開發(fā)的方法研究[J].機(jī)械傳動,2010,34(1):4750.
[7]陳伊璐,沈景鳳,仲梁維,等.基于知識工程的擠壓模具敏捷設(shè)計(jì)系統(tǒng)[J].通信電源技術(shù),2015,32(6):154156.
[8]Parametric technology corporation.pro/engineer wildfire 5.0 VB API users guide[M].USA:PTC.
[9]卜凡,趙高輝,仲梁維,等.基于Creo二次開發(fā)技術(shù)的自卸車車廂敏捷設(shè)計(jì)系統(tǒng)[J].通信電源技術(shù),2015,32(6):207210.
(責(zé)任編輯:黃?。?