殷民艇 董 磊 張 星 石瑞敏
(中北大學機械工程學院,山西 太原 030051)
數控機床是一種運用程序來驅動系統的自動化機床,可以對復雜、精密的小零件進行精準加工,是如今高新制造業中必不可少的精密加工設備[1]。但由于其自動化以及程序化的特點,對于使用數控機床的工作人員有著很高的技術要求,所以在當前的教學過程中,對于數控機床的學習是一門必修課程。
由于機床的昂貴性以及其占地面積過于龐大,很難提供機床為學習人員提供現場指導培訓,各大院校的這種限制尤為突出。隨著計算機信息技術的高速發展以及虛擬現實技術[2-4]的應用成功解決了諸多教學難題。虛擬現實技術是以計算機技術為基礎,憑借其真實性、交互性等特點被應用于眾多領域中。
國內外學者基于虛擬現實技術對機床仿真進行了大量的研究。國外Mcmaster大學對機床銑削過程切削厚度的瞬時變化進行了研究,實現在仿真中物理與幾何的結合[5]。英國Delcam公司開發出了一款名為PowerMILL的獨立運行的數控仿真軟件[6]。國內,大連理工大學何福本等人將虛擬仿真技術應用于普通車床加工工藝實訓教學環節[7],上海工程技術大學趙中華等人實現VDM-320五軸機床數控模擬加工[8],長春工業大學李靜等人利用EON虛擬現實軟件實現對于數控機床加工過程的仿真[9]。目前大多數對于機床仿真系統的研究成果均需要下載對應軟件方可使用,對于使用設備配置也有一定要求。本論文搭建出B/S模式的數控仿真平臺,對于培訓者更為便捷,改進了數控技術人才培養模式,從必須下載大型相關軟件的限制中解放出來。
本文以CY-K360n型機床為研究對象,利用SolidWorks軟件進行機床模型的建立,同時選用可以實現逼真效果的Unity3D軟件來進行機床控制系統的搭建,最后利用Visual Studio軟件開發出B/S模式的機床虛擬加工系統,滿足了基本的機床教學需要。
本文系統是B/S模式的可實現人機交互的機床虛擬加工系統。其中,機床虛擬加工系統主要功能有:機床開關機操作、工件裝夾操作、常用刀具選擇以及虛擬加工演示。系統整體結構可以分為3部分,機床模型、交互式機床加工系統以及網頁系統。系統開發流程圖如圖1所示。

圖1 系統開發流程
目前主流建模軟件有SolidWorks、UG等,基于SolidWorks軟件簡單便捷的設計功能對建模以及模型的裝配較為友好,所以本文選擇使用SolidWorks軟件進行機床模型的建立以及機床零件的裝配。基于3ds MAX軟件的動畫渲染、模型優化以及材質貼圖等優勢功能,本文選擇將SolidWorks模型導入至3ds MAX軟件后對機床模型進行優化、渲染,再將其以.FBX格式導入至Unity3D軟件[10]。
值得注意的是將機床模型導入至3ds MAX軟件后,該軟件會自動為機床模型增加一些輔助物件,這些輔助物件直接刪除即可。接著對模型可以進行進一步的優化,模型多邊形數量會大大地降低,得到精簡化。同時在導入Unity3D軟件前需要調整3ds MAX以及Unity3D中的單位和坐標系,因為這兩個軟件的默認單位和坐標系并不一致,若不加以調整,可能會在后續工作中有所影響。其次,由于Unity只支持自己的材質和光照,所以在導入后可能會出現圖像失真的情況,這里可以使用烘培貼圖的方式來使得在Unity中表現VRay渲染后效果。
將機床模型成功導入至Unity3D軟件后,需要給與機床模型以特定的動作。Unity3D中,控制不同的動作擁有著不同的指令。但原理均為賦予動作幀數,改變所指定的物體每一幀的位置信息從而達到控制其不同動作的需求[11]。
在Unity3D中利用Transfrom組件來完成對于機床模型的動作設定。Transfrom組件中可以針對選定模型零件的位置(position),旋轉(rotation)以及縮放(scale)來實現模型按照自己意愿調整位置[12]。
其中,Transfrom組件中的位置(position)選項是用來將模型從當前所在位置移動至指定的位置。可以通過直接設定其起始坐標來實現其起始位置信息的賦予。旋轉(rotation)選項是用來指定模型部件以其默認坐標軸為軸心進行旋轉。同時,其默認坐標軸中X軸、Y軸以及Z軸均可作為軸心,旋轉角度可以同時圍繞三軸進行設置輸入。這樣可以實現模型指定部件按照任意方向旋轉任一角度。縮放(scale)選項是用來改變指定模型零件大小,通過輸入其初始大小的縮放倍數來改變,以X、Y和Z軸3個方向為中心進行縮放。
為提升機床的真實感,給機床各零部件均添加碰撞體單元,防止虛擬機床在運行中零部件碰撞時出現相互穿過的現象。在Unity3D軟件中碰撞體分為6種類型,可根據機床零部件的形狀以及用途來添加不同的碰撞體類型。
通過碰撞體的設置可以實現機床切削工件的動作。刀具以及工件設置碰撞體之后,添加二者間的觸發事件。當刀具與工件發生碰撞后,引發觸發事件,此時工件與刀具接觸部分將會隱藏,連續碰撞將會表現為切削狀態。
在賦予機床動作指令后,需要創建按鈕來實現機床的交互。當點擊界面中的按鈕時,就會調用對應函數來執行對應動作。按鈕的添加以及其功能的實現即是關鍵所在。利用Unity3D中的自帶功能UI函數即可實現[13]。
首先在SampleScene下創建名為menu的空對象,在這個空對象中直接添加1個UI選項下的按鈕,這時便初步定義了1個按鈕對象。在Button下點擊Text即可進入按鈕文字腳本,可以在內為按鈕進行命名,以及對文字的風格、大小和對齊方式等進行調節。由于Unity3D默認字體為Arial,所以最后將制作完成的系統導出后會出現無法顯示中文的問題。可自行從網上下載格式為.ttf的中文字體,將其替換軟件默認字體即可解決。點擊Button進入按鈕腳本,在其內可設置按鈕的位置,大小以及各個狀態時的顏色等等。在對應腳本On Click下即可設置其執行事件。首先在Assets下創建名為Animator Changer 的C#腳本,程序如下:

將程序添加至機床模型腳本中,進入按鈕腳本控制面板On Click,點擊右下方的加號來進行添加反應事件。在第1個下拉框中選擇Editor And Runtime,這樣點擊按鈕不僅在發布之后有效,在測試階段點擊也同樣有效。第2個下拉框選中程序所建立的animatorChanger選項下的ChangeAnimations程序,場景選擇為機床模型。同理定義其他按鈕。這樣便完成機床交互系統UI界面的設置。
VS在制作網頁時利用其自身的組件即可完成基本的構造。首先新建1個空項目,在項目中添加1個空網站,然后添加.aspx格式的Web窗體,便會在解決方案下添加1個.aspx的項目,這樣就成功創建出網頁。在剛剛創建出的網頁項目下拉列表可以看到有1個.aspx.cs的文件,該頁面中負責填寫相應頁面的方法以及邏輯判斷。
通過VS軟件主界面上方目錄欄中格式以及表格2個組件可以對其頁面布局以及背景色,字體顏色等進行基本的設置。
網站搭建好后需要將機床加工系統嵌入至網站中。首先將系統從Unity3D軟件中導出,Unity3D支持多種導出模式,包括常用的Windows、IOS、Android以及WebGL,根據本文最終要建立用戶在網頁端進行機床控制的要求,選擇導出格式為WebGL[14]。此種方式便是以.html的格式導出,通過該網頁即可瀏覽使用Unity3D軟件中完成的系統。
最終導出1個文件夾,文件內有3個文件,分別為html文件,Build文件夾以及Template Date文件夾。通過瀏覽器打開html文件,會出現瀏覽器不支持運行文件中Unity WebGL的提示(使用Edge或者火狐可以直接打開),可以利用IIS將該文件發布,便可通過瀏覽器直接打開。其后,利用C#函數即可實現網站與該系統的鏈接。打開后系統界面如圖2所示。

圖2 機床加工系統界面
利用該系統可以進行裝夾刀具、對刀以及切削工件等,實現普通機床的簡要操作。對刀與切削工件操作設置近距離視角,便于觀測。操作步驟進行到切削工件步驟時,可以對主軸轉速與進給速度進行選擇設置,如圖3所示。結束操作后擁有查看機床運行程序功能。

圖3 切削工件操作
主軸轉速為500 r/min、進給速度為250 mm/min時程序如下所示:


一個好的學習網站,實現用戶間的交流是不可或缺的。利用搭建留言板,實現用戶留言與回復他人留言的功能。
留言板會與數據庫相連接,用戶在發表言論后,言論內容以及發表時間會儲存在數據庫中新建的表中,同時展示在該留言板上,可以被其他訪問者瀏覽、回復。為保證留言板的干凈整潔,管理員可以通過數據庫刪除留言板中的不當言論。留言板界面如圖4所示。

圖4 留言板界面
數據庫利用Microsoft SQL Server軟件來搭建。數據庫會存儲留言板中的所有留言信息,是留言板頁面的核心。數據庫不是獨立存在,它必須同具體的設計應用功能相關聯,此時就需要在數據庫中建立1個留言信息統計表,用戶在留言成功后其發表信息會存儲進此表。管理員可以通過該表格對留言板中內容進行整理。
在數據庫內建立好相應表格后,需要將數據庫與留言板頁面進行連接,連接核心代碼如下:


連接成功后用戶留言信息便會儲存于數據庫相應表單中。數據庫儲存信息界面如圖5所示。

圖5 數據庫儲存信息界面
將VS軟件搭建的網頁系統與Unity3D搭建的交互式機床加工系統相結合后,最終成功實現以網頁形式來訪問的交互式機床加工系統。
在瀏覽器中輸入網址即可進入主頁面,主頁面如圖6所示。下方有各種加工方式的對應分類以及機床虛擬操作的選項。以打開面銑削下拉列表表面銑為例,打開對應頁面后擁有表面銑簡單介紹以及視頻演示。點擊機床虛擬操作選項即可進入交互式機床加工系統。同時可以在留言板留下自己在工作中遇到的問題或者去回復其他人的留言,以此來建立談論的環境,促進大家共同進步。

圖6 網站主頁面
本論文開發了B/S模式的數控仿真平臺,通過SolidWorks對機床零部件進行實體建模以及床體的裝配;通過Unity3D軟件,實現機床動作設置;通過點擊設置好的UI按鈕即可控制機床做出相應的運動,同時可實時觀測到運動狀態,構建出了機床虛擬加工系統;利用VS軟件實現以B/S模式來訪問該系統。最終實現從網頁端來控制機床運動,滿足了數控機床仿真訓練的基本需求,同時建立基于數據庫的留言板,給用戶提供交流的平臺。該系統相對于其他機床虛擬加工系統有兩大優點:
(1)傳統的機床虛擬加工系統均為EXE格式的單機版,用戶在使用前往往需要下載極大的執行程序方可使用,對于用戶的設備要求較高,使用極不方便。本系統是以B/S模式來訪問,用戶在PC端通過瀏覽器即可訪問,對于設備基本沒有硬件要求。
(2)本系統通過Unity3D軟件開發,同其他開發工具相比,效果更加逼真,更接近于現實,同時該系統也更穩定。