汪劍+沈景鳳+仲梁維



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