殷民艇 董 磊 張 星 石瑞敏
(中北大學機械工程學院,山西 太原 030051)
數(shù)控機床是一種運用程序來驅(qū)動系統(tǒng)的自動化機床,可以對復雜、精密的小零件進行精準加工,是如今高新制造業(yè)中必不可少的精密加工設備[1]。但由于其自動化以及程序化的特點,對于使用數(shù)控機床的工作人員有著很高的技術要求,所以在當前的教學過程中,對于數(shù)控機床的學習是一門必修課程。
由于機床的昂貴性以及其占地面積過于龐大,很難提供機床為學習人員提供現(xiàn)場指導培訓,各大院校的這種限制尤為突出。隨著計算機信息技術的高速發(fā)展以及虛擬現(xiàn)實技術[2-4]的應用成功解決了諸多教學難題。虛擬現(xiàn)實技術是以計算機技術為基礎,憑借其真實性、交互性等特點被應用于眾多領域中。
國內(nèi)外學者基于虛擬現(xiàn)實技術對機床仿真進行了大量的研究。國外Mcmaster大學對機床銑削過程切削厚度的瞬時變化進行了研究,實現(xiàn)在仿真中物理與幾何的結合[5]。英國Delcam公司開發(fā)出了一款名為PowerMILL的獨立運行的數(shù)控仿真軟件[6]。國內(nèi),大連理工大學何福本等人將虛擬仿真技術應用于普通車床加工工藝實訓教學環(huán)節(jié)[7],上海工程技術大學趙中華等人實現(xiàn)VDM-320五軸機床數(shù)控模擬加工[8],長春工業(yè)大學李靜等人利用EON虛擬現(xiàn)實軟件實現(xiàn)對于數(shù)控機床加工過程的仿真[9]。目前大多數(shù)對于機床仿真系統(tǒng)的研究成果均需要下載對應軟件方可使用,對于使用設備配置也有一定要求。本論文搭建出B/S模式的數(shù)控仿真平臺,對于培訓者更為便捷,改進了數(shù)控技術人才培養(yǎng)模式,從必須下載大型相關軟件的限制中解放出來。
本文以CY-K360n型機床為研究對象,利用SolidWorks軟件進行機床模型的建立,同時選用可以實現(xiàn)逼真效果的Unity3D軟件來進行機床控制系統(tǒng)的搭建,最后利用Visual Studio軟件開發(fā)出B/S模式的機床虛擬加工系統(tǒng),滿足了基本的機床教學需要。
本文系統(tǒng)是B/S模式的可實現(xiàn)人機交互的機床虛擬加工系統(tǒng)。其中,機床虛擬加工系統(tǒng)主要功能有:機床開關機操作、工件裝夾操作、常用刀具選擇以及虛擬加工演示。系統(tǒng)整體結構可以分為3部分,機床模型、交互式機床加工系統(tǒng)以及網(wǎng)頁系統(tǒng)。系統(tǒng)開發(fā)流程圖如圖1所示。
圖1 系統(tǒng)開發(fā)流程
目前主流建模軟件有SolidWorks、UG等,基于SolidWorks軟件簡單便捷的設計功能對建模以及模型的裝配較為友好,所以本文選擇使用SolidWorks軟件進行機床模型的建立以及機床零件的裝配?;?ds MAX軟件的動畫渲染、模型優(yōu)化以及材質(zhì)貼圖等優(yōu)勢功能,本文選擇將SolidWorks模型導入至3ds MAX軟件后對機床模型進行優(yōu)化、渲染,再將其以.FBX格式導入至Unity3D軟件[10]。
值得注意的是將機床模型導入至3ds MAX軟件后,該軟件會自動為機床模型增加一些輔助物件,這些輔助物件直接刪除即可。接著對模型可以進行進一步的優(yōu)化,模型多邊形數(shù)量會大大地降低,得到精簡化。同時在導入Unity3D軟件前需要調(diào)整3ds MAX以及Unity3D中的單位和坐標系,因為這兩個軟件的默認單位和坐標系并不一致,若不加以調(diào)整,可能會在后續(xù)工作中有所影響。其次,由于Unity只支持自己的材質(zhì)和光照,所以在導入后可能會出現(xiàn)圖像失真的情況,這里可以使用烘培貼圖的方式來使得在Unity中表現(xiàn)VRay渲染后效果。
將機床模型成功導入至Unity3D軟件后,需要給與機床模型以特定的動作。Unity3D中,控制不同的動作擁有著不同的指令。但原理均為賦予動作幀數(shù),改變所指定的物體每一幀的位置信息從而達到控制其不同動作的需求[11]。
在Unity3D中利用Transfrom組件來完成對于機床模型的動作設定。Transfrom組件中可以針對選定模型零件的位置(position),旋轉(zhuǎn)(rotation)以及縮放(scale)來實現(xiàn)模型按照自己意愿調(diào)整位置[12]。
其中,Transfrom組件中的位置(position)選項是用來將模型從當前所在位置移動至指定的位置。可以通過直接設定其起始坐標來實現(xiàn)其起始位置信息的賦予。旋轉(zhuǎn)(rotation)選項是用來指定模型部件以其默認坐標軸為軸心進行旋轉(zhuǎn)。同時,其默認坐標軸中X軸、Y軸以及Z軸均可作為軸心,旋轉(zhuǎn)角度可以同時圍繞三軸進行設置輸入。這樣可以實現(xiàn)模型指定部件按照任意方向旋轉(zhuǎn)任一角度。縮放(scale)選項是用來改變指定模型零件大小,通過輸入其初始大小的縮放倍數(shù)來改變,以X、Y和Z軸3個方向為中心進行縮放。
為提升機床的真實感,給機床各零部件均添加碰撞體單元,防止虛擬機床在運行中零部件碰撞時出現(xiàn)相互穿過的現(xiàn)象。在Unity3D軟件中碰撞體分為6種類型,可根據(jù)機床零部件的形狀以及用途來添加不同的碰撞體類型。
通過碰撞體的設置可以實現(xiàn)機床切削工件的動作。刀具以及工件設置碰撞體之后,添加二者間的觸發(fā)事件。當?shù)毒吲c工件發(fā)生碰撞后,引發(fā)觸發(fā)事件,此時工件與刀具接觸部分將會隱藏,連續(xù)碰撞將會表現(xiàn)為切削狀態(tài)。
在賦予機床動作指令后,需要創(chuàng)建按鈕來實現(xiàn)機床的交互。當點擊界面中的按鈕時,就會調(diào)用對應函數(shù)來執(zhí)行對應動作。按鈕的添加以及其功能的實現(xiàn)即是關鍵所在。利用Unity3D中的自帶功能UI函數(shù)即可實現(xiàn)[13]。
首先在SampleScene下創(chuàng)建名為menu的空對象,在這個空對象中直接添加1個UI選項下的按鈕,這時便初步定義了1個按鈕對象。在Button下點擊Text即可進入按鈕文字腳本,可以在內(nèi)為按鈕進行命名,以及對文字的風格、大小和對齊方式等進行調(diào)節(jié)。由于Unity3D默認字體為Arial,所以最后將制作完成的系統(tǒng)導出后會出現(xiàn)無法顯示中文的問題??勺孕袕木W(wǎng)上下載格式為.ttf的中文字體,將其替換軟件默認字體即可解決。點擊Button進入按鈕腳本,在其內(nèi)可設置按鈕的位置,大小以及各個狀態(tài)時的顏色等等。在對應腳本On Click下即可設置其執(zhí)行事件。首先在Assets下創(chuàng)建名為Animator Changer 的C#腳本,程序如下:
將程序添加至機床模型腳本中,進入按鈕腳本控制面板On Click,點擊右下方的加號來進行添加反應事件。在第1個下拉框中選擇Editor And Runtime,這樣點擊按鈕不僅在發(fā)布之后有效,在測試階段點擊也同樣有效。第2個下拉框選中程序所建立的animatorChanger選項下的ChangeAnimations程序,場景選擇為機床模型。同理定義其他按鈕。這樣便完成機床交互系統(tǒng)UI界面的設置。
VS在制作網(wǎng)頁時利用其自身的組件即可完成基本的構造。首先新建1個空項目,在項目中添加1個空網(wǎng)站,然后添加.aspx格式的Web窗體,便會在解決方案下添加1個.aspx的項目,這樣就成功創(chuàng)建出網(wǎng)頁。在剛剛創(chuàng)建出的網(wǎng)頁項目下拉列表可以看到有1個.aspx.cs的文件,該頁面中負責填寫相應頁面的方法以及邏輯判斷。
通過VS軟件主界面上方目錄欄中格式以及表格2個組件可以對其頁面布局以及背景色,字體顏色等進行基本的設置。
網(wǎng)站搭建好后需要將機床加工系統(tǒng)嵌入至網(wǎng)站中。首先將系統(tǒng)從Unity3D軟件中導出,Unity3D支持多種導出模式,包括常用的Windows、IOS、Android以及WebGL,根據(jù)本文最終要建立用戶在網(wǎng)頁端進行機床控制的要求,選擇導出格式為WebGL[14]。此種方式便是以.html的格式導出,通過該網(wǎng)頁即可瀏覽使用Unity3D軟件中完成的系統(tǒng)。
最終導出1個文件夾,文件內(nèi)有3個文件,分別為html文件,Build文件夾以及Template Date文件夾。通過瀏覽器打開html文件,會出現(xiàn)瀏覽器不支持運行文件中Unity WebGL的提示(使用Edge或者火狐可以直接打開),可以利用IIS將該文件發(fā)布,便可通過瀏覽器直接打開。其后,利用C#函數(shù)即可實現(xiàn)網(wǎng)站與該系統(tǒng)的鏈接。打開后系統(tǒng)界面如圖2所示。
圖2 機床加工系統(tǒng)界面
利用該系統(tǒng)可以進行裝夾刀具、對刀以及切削工件等,實現(xiàn)普通機床的簡要操作。對刀與切削工件操作設置近距離視角,便于觀測。操作步驟進行到切削工件步驟時,可以對主軸轉(zhuǎn)速與進給速度進行選擇設置,如圖3所示。結束操作后擁有查看機床運行程序功能。
圖3 切削工件操作
主軸轉(zhuǎn)速為500 r/min、進給速度為250 mm/min時程序如下所示:
一個好的學習網(wǎng)站,實現(xiàn)用戶間的交流是不可或缺的。利用搭建留言板,實現(xiàn)用戶留言與回復他人留言的功能。
留言板會與數(shù)據(jù)庫相連接,用戶在發(fā)表言論后,言論內(nèi)容以及發(fā)表時間會儲存在數(shù)據(jù)庫中新建的表中,同時展示在該留言板上,可以被其他訪問者瀏覽、回復。為保證留言板的干凈整潔,管理員可以通過數(shù)據(jù)庫刪除留言板中的不當言論。留言板界面如圖4所示。
圖4 留言板界面
數(shù)據(jù)庫利用Microsoft SQL Server軟件來搭建。數(shù)據(jù)庫會存儲留言板中的所有留言信息,是留言板頁面的核心。數(shù)據(jù)庫不是獨立存在,它必須同具體的設計應用功能相關聯(lián),此時就需要在數(shù)據(jù)庫中建立1個留言信息統(tǒng)計表,用戶在留言成功后其發(fā)表信息會存儲進此表。管理員可以通過該表格對留言板中內(nèi)容進行整理。
在數(shù)據(jù)庫內(nèi)建立好相應表格后,需要將數(shù)據(jù)庫與留言板頁面進行連接,連接核心代碼如下:
連接成功后用戶留言信息便會儲存于數(shù)據(jù)庫相應表單中。數(shù)據(jù)庫儲存信息界面如圖5所示。
圖5 數(shù)據(jù)庫儲存信息界面
將VS軟件搭建的網(wǎng)頁系統(tǒng)與Unity3D搭建的交互式機床加工系統(tǒng)相結合后,最終成功實現(xiàn)以網(wǎng)頁形式來訪問的交互式機床加工系統(tǒng)。
在瀏覽器中輸入網(wǎng)址即可進入主頁面,主頁面如圖6所示。下方有各種加工方式的對應分類以及機床虛擬操作的選項。以打開面銑削下拉列表表面銑為例,打開對應頁面后擁有表面銑簡單介紹以及視頻演示。點擊機床虛擬操作選項即可進入交互式機床加工系統(tǒng)。同時可以在留言板留下自己在工作中遇到的問題或者去回復其他人的留言,以此來建立談論的環(huán)境,促進大家共同進步。
圖6 網(wǎng)站主頁面
本論文開發(fā)了B/S模式的數(shù)控仿真平臺,通過SolidWorks對機床零部件進行實體建模以及床體的裝配;通過Unity3D軟件,實現(xiàn)機床動作設置;通過點擊設置好的UI按鈕即可控制機床做出相應的運動,同時可實時觀測到運動狀態(tài),構建出了機床虛擬加工系統(tǒng);利用VS軟件實現(xiàn)以B/S模式來訪問該系統(tǒng)。最終實現(xiàn)從網(wǎng)頁端來控制機床運動,滿足了數(shù)控機床仿真訓練的基本需求,同時建立基于數(shù)據(jù)庫的留言板,給用戶提供交流的平臺。該系統(tǒng)相對于其他機床虛擬加工系統(tǒng)有兩大優(yōu)點:
(1)傳統(tǒng)的機床虛擬加工系統(tǒng)均為EXE格式的單機版,用戶在使用前往往需要下載極大的執(zhí)行程序方可使用,對于用戶的設備要求較高,使用極不方便。本系統(tǒng)是以B/S模式來訪問,用戶在PC端通過瀏覽器即可訪問,對于設備基本沒有硬件要求。
(2)本系統(tǒng)通過Unity3D軟件開發(fā),同其他開發(fā)工具相比,效果更加逼真,更接近于現(xiàn)實,同時該系統(tǒng)也更穩(wěn)定。