張作勝,張 勇,朱振國,陳傳勝
(1.安徽職業(yè)技術(shù)學(xué)院 機(jī)械工程學(xué)院,安徽 合肥 230011;2.合肥工業(yè)大學(xué) 材料科學(xué)與工程學(xué)院,安徽 合肥 230009)
注射模具的澆注系統(tǒng)是指從注射機(jī)噴嘴出口起到模具型腔入口止的塑料熔體流動(dòng)通道。澆注系統(tǒng)的設(shè)計(jì)是注塑模具射中的關(guān)鍵部分,設(shè)計(jì)的好壞直接關(guān)系到注塑產(chǎn)品的質(zhì)量。
對(duì)于在CAD 軟件下注塑模具澆注系統(tǒng)的二次開發(fā),已有許多文獻(xiàn)論述。蔣易立在Pro/ENGI?NEER軟件中開發(fā)出澆注系統(tǒng)模塊[1],用戶通過輸入相應(yīng)信息和數(shù)據(jù)庫提示的參數(shù)即可生成不同的流道。周春英利用Pro/E 的Pro/Toolkit,在Visual C++編輯環(huán)境下開發(fā)了適合于大壁厚塑料制品注塑模澆注系統(tǒng)的應(yīng)用程序[2]。周曉靜用Microsoft Visual Studio 2010 結(jié)合UG 二次開發(fā)工具UG Open 開發(fā)出了專用泵類澆注系統(tǒng)模塊與專用泵閥類澆注系統(tǒng)模塊[3]。魏慶強(qiáng)等以UG7.5 為平臺(tái),VC++6.0 和 UG/OpenAPI 為二次開發(fā)工具,開發(fā)了專用于DISA 造型線的三維CAD 鑄造工藝設(shè)計(jì)系統(tǒng)[4]。
以上觀點(diǎn)和方法的提出為注塑模具澆注系統(tǒng)的二次開發(fā)帶來了很好的思路,但較少有人基于VB.NET 平臺(tái)使用Journaling 技術(shù)來輔助二次開發(fā)。結(jié)合前人的分析理論,本文基于UG/OPE 二次開發(fā)平臺(tái),使用VB.NET開發(fā)語言,結(jié)合Journal?ing 技術(shù)進(jìn)行注塑模具澆注系統(tǒng)參數(shù)化設(shè)計(jì)模塊開發(fā),從實(shí)現(xiàn)澆注系統(tǒng)的快速設(shè)計(jì)。
Journaling是UG NX的一種自動(dòng)化技術(shù),其原理是通過錄制UG NX 相關(guān)操作記錄成日志文件,下次直接執(zhí)行該日志文件即可完成同樣操作[5]。Journaling 的特點(diǎn)就是“錄制+重放”,但是其本身沒有參數(shù)化的功能。
使用Journaling 技術(shù)的一般思路是“錄制操作→生成代碼文件→修改代碼→生成DLL 文件”,這樣可使Journaling代碼成為UG菜單上一個(gè)獨(dú)立的、參數(shù)化的命令。在二次開發(fā)中,采用.NET(本文采用VB.NET)平臺(tái)下UG/Journaling,給建模經(jīng)驗(yàn)豐富但編程經(jīng)驗(yàn)不足的科研技術(shù)人員提供了示范作用和快速獲得代碼的途徑。
Visual Basic.NET 簡(jiǎn)稱 VB.NET,相比 C++、Python 等語言,更加簡(jiǎn)單易學(xué),應(yīng)用范圍很廣,也是UG/Journaling 技術(shù)錄制操作時(shí)推薦使用的代碼格式?;赩B.NET 平臺(tái),使用UG/Open MenuScript 進(jìn)行二次開發(fā)菜單、工具條用戶化開發(fā)[6],并用 UG/Open UIStyler 為應(yīng)用程序開發(fā)與UG NX 風(fēng)格一致的交互界面,再結(jié)合UG/Journal?ing 技術(shù)錄制代碼,可快速進(jìn)行UG/Open 二次開發(fā)。
使用NX Open for VB.NET 開發(fā)過程如圖1所示。
圖1 基于VB.NET二次開發(fā)流程
2.2.1 UG NX澆注系統(tǒng)菜單條制作與工具條制作
UG/Open MenuScript是UG NX軟件用于自定義NX 菜單的腳本語言,通過編輯MenuScript腳本語言可添加與UG NX 軟件相同風(fēng)格的新菜單項(xiàng),用來執(zhí)行用戶二次開發(fā)程序。
在有關(guān)UG NX 二次開發(fā)相關(guān)的大量論文中,大多數(shù)只對(duì)菜單和普通工具條制作進(jìn)行了研究,而對(duì)從NX9.0就開始使用的Ribbon風(fēng)格工具條則涉及很少,即使有也僅是只字片語的描述,沒有深入的研究。對(duì)于菜單的代碼編寫,這里不再贅述,而著重探討Ribbon 風(fēng)格工具條的設(shè)計(jì)方法。因?yàn)橄嚓P(guān)資料很少,除了軟件的幫助文件外,UG NX軟件安裝目錄UGII/MENUS 下的*.rtb 文件結(jié)構(gòu)也給我們提供了研究思路。通過大量實(shí)踐,我們發(fā)現(xiàn)在*.rtb 文件中,可使用 GROUP、CASCADE、COLLAPSED 等關(guān)鍵字。還可以把不同風(fēng)格的UI制作成不同格式的文件,如*.ddb 文件(可變換圖標(biāo)的下拉式按鈕)、*.csb 文件(不會(huì)變換圖標(biāo)的下拉式按鈕)、*.gly(galley 庫樣式)文件以及*.grb 文件(group 文件)等,最終我們編寫的澆注系統(tǒng)Rib?bon風(fēng)格工具條代碼如下所示:
將其命名為rbn_jzxitong.rtb,并放入applica?tion→profiles→UG_APP_MODELING 文件夾下,其目的是當(dāng)NX 軟件處于建模環(huán)境下時(shí),澆注系統(tǒng)二次開發(fā)程序Ribbon工具條才顯示出來。
啟動(dòng)UG NX12,新建一個(gè)部件或打開某個(gè)部件,進(jìn)入建模模塊,可驗(yàn)證澆注系統(tǒng)菜單條和Rib?bon 工具條已經(jīng)創(chuàng)建完成。在幫助菜單之后出現(xiàn)了“澆注系統(tǒng)”的菜單項(xiàng),如圖2所示。
圖2 澆注系統(tǒng)菜單
在NX12 界面上出現(xiàn)“澆注系統(tǒng)”的選項(xiàng)卡及澆注系統(tǒng)相關(guān)命令按鈕,如圖3所示。
圖3 澆注系統(tǒng)Ribbon工具條
2.2.2 澆注系統(tǒng)界面UI設(shè)計(jì)
二次開發(fā)的UI 界面是人機(jī)交互的基礎(chǔ),在UG NX 的二次開發(fā)中,主要使用 UI Styler 來設(shè)計(jì)UI 界面。根據(jù)澆注系統(tǒng)二次開發(fā)程序功能的需求,選擇合適的對(duì)話框控件,像疊方塊一樣畫出滿意的UI Styler對(duì)話框。保存后會(huì)得到兩個(gè)后綴名不同的文件,其一是*.dlx 文件,用于描述對(duì)話框的組成,這個(gè)文件實(shí)際上是xml 格式的文本文件,最終呈現(xiàn)出來的就是澆注系統(tǒng)的UI 界面[7]。另一個(gè)是*.vb文件,可使用VB.NET進(jìn)行編輯來完成進(jìn)一步程序編寫工作。以“唧嘴定位環(huán)”UI 界面設(shè)計(jì)為例,生成的VB 文件命名為JZ_dwh.vb,UI界面文件為JZ_dwh.dlx,開發(fā)好的界面如圖4所示。
圖4 澆注系統(tǒng)唧嘴定位環(huán)界面
2.2.3 使用UG/Journaling 進(jìn)行澆注系統(tǒng)建模
(1)錄制操作記錄
設(shè)置日記語言類型為Visual Basic,之所以選擇VB.NET 作為二次開發(fā)語言,是因?yàn)閂B.NET 比起C++、C#語言更簡(jiǎn)單易學(xué)。但基于VB.NET 平臺(tái)的UG NX 二次開發(fā)的文獻(xiàn)論述較少,所以更值得我們研究。
以唧嘴定位環(huán)三維建模為例,步驟如下:新建一個(gè)PRT 文件,任意命名并進(jìn)入建模環(huán)境;打開日記下的錄制命令(工具→操作記錄→錄制),命名為JZ_dwhcx.vb,定位環(huán)如圖5所示,其未知參數(shù)可自行定義,此處我們只需要錄制好的.vb 文件。建模完成后,停止操作記錄的錄制。
圖5 定位環(huán)
(2)將UI界面和應(yīng)用程序關(guān)聯(lián)
操作記錄錄制完畢以后,如何將代碼與澆注系統(tǒng)UI 界面(圖4)關(guān)聯(lián)起來是設(shè)計(jì)的關(guān)鍵一環(huán)。繼續(xù)以唧嘴定位環(huán)為例,在VB.NET 中新建一個(gè)項(xiàng)目,選擇Class Library 類型的項(xiàng)目(DLL 文件),然后將JZ_dwh.vb(保存UI 界面時(shí)生成的VB 文件)添加到項(xiàng)目中,并引用三個(gè)DLL,即NXOpen、NXOpen.Utilties 和 NXOpenUI。
編寫對(duì)話框回調(diào)函數(shù)是將UI 界面和應(yīng)用程序關(guān)聯(lián)的最重要一步。在NX 的對(duì)話框中參數(shù)設(shè)置完成后,一般按OK 或Apply 按鈕執(zhí)行操作,按Cancel 退出這個(gè)命令。NXOpen 對(duì)話框的操作使用了回調(diào)函數(shù)技術(shù)來判斷用戶按了哪個(gè)按鈕,所以我們只需要完善JZ_dwh.vb文件中OK、Apply和Cancel三個(gè)回調(diào)函數(shù)的代碼即可。
(3)修改日志文件,生成.dll文件
拷貝JZ_dwhcx.vb(主流道建模錄制產(chǎn)生的vb文件)中的源代碼至上述回調(diào)函數(shù)“JZ_dwh.vb”的 apply_cb()函數(shù)體內(nèi)。
使用UG/Journaling錄制的VB代碼,有的可能是重復(fù)和無用的信息,比如錄制代碼文件中生成的 mark 變量,在二次開發(fā)中沒有實(shí)際意義,要手動(dòng)刪除,否則將影響程序運(yùn)算速度[8]。我們需要在進(jìn)行程序閱讀的時(shí)候進(jìn)行辨別,從中提取有用的代碼,然后對(duì)這些代碼進(jìn)行適當(dāng)?shù)男薷模尤胄枰诙ㄖ颇K中實(shí)現(xiàn)的知識(shí)和邏輯,才能進(jìn)行人機(jī)交互。
在錄制的VB.NET 程序中,基準(zhǔn)坐標(biāo)點(diǎn)、角度和長(zhǎng)度等參數(shù)的設(shè)置是通過計(jì)算確定的。而在交互操作中,這些參數(shù)往往是從UI界面的輸入框中獲取,其關(guān)鍵代碼是:
X=XXX.GetProperties.GetDouble("Value")
GetProperties.GetDouble("Value")函數(shù)將從UI 界面提取的參數(shù)傳遞給變量X,更多的函數(shù)可以從UG NX幫助文件獲取。
以定位環(huán)為例,根據(jù)它的構(gòu)造特點(diǎn)設(shè)置相應(yīng)變量,變量的目的在于通過參數(shù)變量把用戶輸入文本框的定位環(huán)尺寸傳遞至運(yùn)算程序。對(duì)錄制后的代碼進(jìn)行改造如下(只展示部分關(guān)鍵代碼):
這種通過錄制代碼改造的方法可以大大減少編寫代碼的工作量,修改完畢的代碼文件可編譯生成.dll 文件。通過這種方式生成二次開發(fā)澆注系統(tǒng)所有模塊的*.dll 文件,并將它們和菜單文件*.men、位圖等相關(guān)資源文件分別拷貝至Startup或Application目錄,完成澆注系統(tǒng)的二次開發(fā)。
二次開發(fā)完成后,用戶在澆注系統(tǒng)參數(shù)化建模過程中只需通過菜單項(xiàng)或者工具條選擇相應(yīng)命令,在彈出的對(duì)話框中輸入?yún)?shù),即可實(shí)現(xiàn)澆注系統(tǒng)各部分的快速建模。圖5為D=100,D1=36的定位環(huán)三維模型。
圖5 定位環(huán)三維模型
本文以VB.NET 為開發(fā)語言,重點(diǎn)研究了UG NX 軟件的 UG/Open 和 Journaling 技術(shù)相結(jié)合的開發(fā)方式,通過修改少量關(guān)鍵代碼方式實(shí)現(xiàn)了注塑模具澆注系統(tǒng)模塊的二次開發(fā)。
實(shí)踐表明,通過 .NET 和 Journaling 進(jìn)行 NX 二次開發(fā),具有簡(jiǎn)單、高效和靈活的特性。隨著UG NX 版本的升級(jí),其Journaling 功能肯定會(huì)更加完善,用戶修改代碼的工作量也會(huì)越來越少,從而使本方法更加快捷。
安徽職業(yè)技術(shù)學(xué)院學(xué)報(bào)2021年4期