羋 天
(南京工業(yè)大學(xué),江蘇 南京 210000)
虛擬仿真是指通過計算機圖形學(xué)、仿真技術(shù)和人機交互技術(shù)將現(xiàn)實中的相關(guān)產(chǎn)品、設(shè)備虛擬化,使其能夠在計算機中進行模擬交互,從而達到虛擬操作的效果。這種技術(shù)在教育行業(yè)有著巨大的應(yīng)用前景,“十三五”規(guī)劃中就曾明確指出,“要推動大數(shù)據(jù)、虛擬現(xiàn)實、人工智能等新技術(shù)在教育教學(xué)中的深入應(yīng)用”[1]。機械制造基礎(chǔ)是一門講述加工工藝、加工方法的專業(yè)課程,內(nèi)容廣泛,專業(yè)性強。其中,介紹加工原理的知識點較為直觀,而介紹加工參數(shù)的知識點較為抽象。這在學(xué)習(xí)過程中,對學(xué)生的抽象思維能力有著一定的要求。面對相關(guān)問題,以機械制造基礎(chǔ)中的車刀集合角度以及參數(shù)一章為例,聯(lián)系當(dāng)下在線教育的新形式,將虛擬仿真技術(shù)與相關(guān)課程中較為抽象的知識點相結(jié)合,開發(fā)新型交互式課件,能夠提高課件操作的交互性,表現(xiàn)的生動性,同時提升學(xué)生的參與度[2],幫助學(xué)生更好地理解部分較為抽象的知識點。
近來由于疫情影響,高校大多通過網(wǎng)課的形式進行課程教授,在講解一些特殊的機械裝備時(如講解車刀結(jié)構(gòu)的時候),傳統(tǒng)的課程中往往使用實物演示、教具互動的形式進行講解,由于網(wǎng)課教授方式的特殊性,教師無法通過實物或模型與學(xué)生形成良好的互動,同時,傳統(tǒng)的課件在面對一些較為抽象的知識點時,不便于學(xué)生理解[3]。
以車刀組成以及角度參數(shù)一章為例,刀具幾何角度的測量是其中最為重要的知識點,刀具的幾何角度是通過將主(副)切削刃投影到輔助平面進行測量,刀具通常有3個輔助平面,分別為:基面Pr,切削平面Ps,正交平面Po。基面Pr為通過切削刃且平行于刀具安裝面的平面,切削平面Ps為與刀具的切削刃和刀具進給方向重合的平面,而正交平面Po則是垂直于切削平面Ps和基面Pr的平面。由于這3個平面都為虛擬平面,且測量刀具幾何角度時需要將刀具不同切削刃投影到相應(yīng)輔助平面上進行測量,空間轉(zhuǎn)換較為復(fù)雜。
面對此類知識點,傳統(tǒng)課件大多會采用如圖1的形式進行表現(xiàn)。這種表現(xiàn)方式十分抽象,不便于學(xué)生理解。
圖1 車刀幾何參數(shù)的傳統(tǒng)課件表現(xiàn)形式
而虛擬仿真技術(shù)可以很好的解決此類問題,使用虛擬仿真技術(shù)開發(fā)的交互式課件,能夠構(gòu)建虛擬的車刀模型,并在車刀模型基礎(chǔ)上將輔助平面展示出來[4],通過動畫將切削刃的投影過程加以演示,供教師展示講解,也能夠通過相關(guān)程序進行交互,能夠自由旋轉(zhuǎn)加工刀具,更加立體地展示刀具幾何結(jié)構(gòu)[5]。
圖2 交互式課件的表現(xiàn)形式
基于上述問題,本文以虛擬仿真技術(shù)為基礎(chǔ),結(jié)合車刀組成以及角度參數(shù)中較為抽象的知識點,開發(fā)交互式課件,為新的教學(xué)模式提供理論支撐。
根據(jù)相關(guān)課程的教學(xué)目標(biāo),這一章學(xué)生需要學(xué)習(xí)的知識點為:1)車刀的組成部分;2)用于測量車刀角度輔助平面的建立;3)車刀幾何角度測量以及參數(shù)選擇。
該部分知識點需要學(xué)生了解車刀組成部分的定義。由于部分定義在加工過程中才能夠清楚表現(xiàn)(如車刀的前刀面是切屑流過的表面),因此需要制作虛擬車削加工動畫。車削加工中輔助平面的建立則需要根據(jù)輔助平面的定義,用動畫的形式表現(xiàn)出輔助平面設(shè)立的過程。車刀角度測量不僅僅需要表現(xiàn)出相應(yīng)角度的投影關(guān)系,不同角度結(jié)構(gòu)的刀具有不同的測量方式,因此需要制作不同種類的刀具模型,用于分別講解。同時,為了直觀地展現(xiàn)相關(guān)投影結(jié)構(gòu),程序要能夠?qū)崿F(xiàn)自由平移、旋轉(zhuǎn)、縮放等功能。系統(tǒng)的理論支撐以及設(shè)計思路如圖3所示。
圖3 系統(tǒng)框架以及軟件設(shè)計流程
根據(jù)設(shè)計,交互式課件開發(fā)流程如下:1)選取具有代表性的車刀,對其進行測繪,使用solidworks建模軟件構(gòu)造車刀的模型;2)將solidworks制作得到的模型導(dǎo)入Maya軟件中進行優(yōu)化,同時使用maya制作車刀車削棒料的動畫,并將其導(dǎo)出;3)使用unity引擎開發(fā)軟件的基礎(chǔ)功能,同時優(yōu)化軟件的操作體驗,保證交互的便利性;4)最后將maya導(dǎo)出的模型以及動畫文件導(dǎo)入unity軟件中,結(jié)合相應(yīng)素材完成軟件的應(yīng)用模塊,最后將軟件打包導(dǎo)出。
為了增強課件的易用性和交互性,軟件需要構(gòu)建ui界面用于控制程序的開始與結(jié)束,顯示相應(yīng)模型以及信息,構(gòu)建課件的交互界面。本課件的操作界面設(shè)計如圖4所示。
圖4 交互式課件的ui界面設(shè)計
交互式課件的ui界面主要包括刀具知識點選擇,刀具結(jié)構(gòu)觀察,切削動畫觀看,相關(guān)知識點文字介紹等功能,點擊相應(yīng)按鈕即可顯示相應(yīng)信息。
在講解車刀相關(guān)參數(shù)時需要用到車刀模型,車刀模型在制作過程中應(yīng)當(dāng)力求真實、形象,符合真實的車刀工作環(huán)境。車刀在加工過程中會用到多種角度的刀具,如90°偏刀、45°外圓刀、切斷刀、內(nèi)鏜刀等等,不同的車刀在使用過程中起到不同的作用,其刀具組成部分和刀具角度都存在差異,如偏刀與外援刀有1個刀尖,而切斷刀有2個刀尖。為了表現(xiàn)不同種類的刀具結(jié)構(gòu)特征,需要根據(jù)刀具的種類分別制作模型。
圖5 不同種類的刀具模型
此課程中的部分知識點結(jié)合動畫講解更加便于學(xué)生理解,如刀具結(jié)構(gòu)中的前刀面,其定義是“切削過程中鐵屑流過的表面”,為了使學(xué)生學(xué)習(xí)時更加直觀,通過maya開發(fā)刀具切削動畫,如圖5所示,并將其烘焙后導(dǎo)出unity中,在講解相關(guān)知識點時進行播放。
圖6 外圓車削動畫
交互式課件須具備一定的交互性,尤其在展示相關(guān)結(jié)構(gòu)細節(jié)時,應(yīng)能夠?qū)崿F(xiàn)自由平移、旋轉(zhuǎn)、縮放零件的交互方式。綜合相關(guān)三維交互軟件的使用方案,筆者選擇了基于鼠標(biāo)的交互模式。具體交互效果如圖7所示。
圖7 基礎(chǔ)功能交互效果
圖6(a)、(b)、(c)為刀具不同交互方式的對比。當(dāng)用戶按下鼠標(biāo)中鍵,顯示平移圖標(biāo),拖動鼠標(biāo)移動零件;按下右鍵,顯示旋轉(zhuǎn)圖標(biāo),拖動旋轉(zhuǎn)零件;滑動滾輪,顯示縮放圖標(biāo),滾動滾輪縮放零件。系統(tǒng)實時記錄零件的角度位置縮放信息,實現(xiàn)自由觀察零件的效果,實現(xiàn)基礎(chǔ)交互功能的核心代碼如下:
void Update(){
if(Input.GetAxis("Mouse ScrollWheel")!= 0 ){
part.transform.localScale = new Vector3(part.transform.localScale.x + Input.GetAxis("Mouse ScrollWheel"), part.transform.localScale.y + Input.GetAxis("Mouse ScrollWheel"), part.transform.localScale.z + Input.GetAxis("Mouse ScrollWheel"));}
if(Input.GetMouseButton(1)){
part.transform.Rotate(Vector3.down, Time.deltaTime * 200 * Input.GetAxis("Mouse X"));
part.transform.Rotate(Vector3.right, Time.deltaTime* 200 * Input.GetAxis("Mouse Y"));}
if(Input.GetMouseButton(2)){
move.gameObject.SetActive(true);
part.transform.Translate(Vector3.right * Input.GetAxis("Mouse X"));
part.transform.Translate(Vector3.up * Input.GetAxis("Mouse Y"));}}
為了能夠更好展示刀具切削過程以及角度參數(shù)的輔助平面和投影關(guān)系,刀具模型需要結(jié)合文字,動畫等信息進行輔助介紹。由于需要介紹的知識點較多,為了提高軟件運行效率以及開發(fā)效率,需將相關(guān)功能寫成功能腳本,可供開發(fā)人員自由配置,通過修改腳本配置,就能改變知識點的動畫序列以及介紹的文字內(nèi)容,如圖8所示。
圖8 通過腳本配置播放不同動畫以及介紹文本
其中,Introduce字段用于配置零件的介紹文本。Part_object字段用于配置當(dāng)前顯示的刀具,Need_play_animation字段用于控制當(dāng)前知識點是否需要播放動畫,Need_loop_animation用于控制動畫是否需要循環(huán)播放,Animation_player字段用于配置播放動畫的模型,Animation_name用于控制當(dāng)前動畫的名稱。具體代碼如下:
public void Knowledge_Points(){
ui_introcuce.text = introcuce;
part_onject.SetActive(true);
if(need_play_anmiation){
anmiation_player.GetComponent
if(need_loop_anmiation){
if(anmiation_player.GetComponent
anmiation_player.GetComponent
開發(fā)完成的課件程序能夠通過unity自帶的發(fā)布程序發(fā)布到多個平臺,例如windows、安卓、ios以及web平臺。為了便于教師講課使用,筆者將其發(fā)布到web平臺,此處以web平臺為例,在“Build Setting”頁面中選擇“WebGl”后點擊“Build”,即可將相關(guān)程打包;最后將打好的包部署在IIS服務(wù)器,根據(jù)服務(wù)器的版本配置MIME類型文件;完成后即可通過瀏覽器訪問網(wǎng)頁,在線使用交互式課件,進行相關(guān)知識點教學(xué)。
傳統(tǒng)的課件在面對機械課程中一些較為抽象的知識點時,表達不清,同時面對當(dāng)下較為時興的網(wǎng)課教育環(huán)境,缺乏交互性是其一大弊端。而基于虛擬仿真技術(shù)的交互式課件能夠很好地彌補傳統(tǒng)課件的短板,其具有交互性強,化抽象為形象的特點,更加形象,直觀地表達機械加工中一些抽象的知識點,在不能親手使用教具展示相關(guān)刀具結(jié)構(gòu)時,交互式課件能夠更加清楚的展現(xiàn)零件的形態(tài)與結(jié)構(gòu)。相比于靜態(tài)課件,教師使用動態(tài)課件授課能使得學(xué)生注意力更加集中,這種優(yōu)勢在網(wǎng)絡(luò)授課的環(huán)境中更加明顯。學(xué)生學(xué)習(xí)的效率以及興趣得到了顯著提高,為高校的教學(xué)改革提供了新的參考。