王桂錄
(鄭州科技學(xué)院 機(jī)械工程學(xué)院,鄭州 450064)
虛擬仿真實(shí)驗(yàn)教學(xué)項(xiàng)目是通過(guò)虛擬仿真實(shí)現(xiàn)教學(xué)目標(biāo)的項(xiàng)目[1]。教育部《關(guān)于2017—2020年開展示范性虛擬仿真實(shí)驗(yàn)教學(xué)項(xiàng)目建設(shè)的通知》(教高廳〔2017〕4號(hào))[2]和《關(guān)于開展國(guó)家虛擬仿真實(shí)驗(yàn)教學(xué)項(xiàng)目建設(shè)工作的通知》(教高函〔2018〕5號(hào))[3]指出,虛擬仿真實(shí)驗(yàn)教學(xué)項(xiàng)目是拓展實(shí)驗(yàn)教學(xué)內(nèi)容廣度和深度、延伸實(shí)驗(yàn)教學(xué)時(shí)間和空間、提升實(shí)驗(yàn)教學(xué)質(zhì)量和水平的重要舉措;堅(jiān)持問(wèn)題導(dǎo)向、需求導(dǎo)向開展虛擬仿真實(shí)驗(yàn)教學(xué)項(xiàng)目建設(shè)。
近幾年,虛擬仿真已經(jīng)成為高校實(shí)驗(yàn)教學(xué)改革的熱點(diǎn)[4]。馮桂珍等[5]構(gòu)建了減速器虛擬拆裝實(shí)驗(yàn),在產(chǎn)品拆裝教學(xué)等環(huán)節(jié)中取得了良好的效果。丁毓峰等[6]基于Unity3D采用B/S架構(gòu)搭建了常見的4種機(jī)電產(chǎn)品的虛擬拆裝系統(tǒng),在網(wǎng)頁(yè)端動(dòng)態(tài)展示了產(chǎn)品的工作原理與拆裝過(guò)程。馮立艷等[7]基于Unity3D開發(fā)了機(jī)械基礎(chǔ)虛擬實(shí)驗(yàn)系統(tǒng),詳細(xì)介紹了約束關(guān)系及裝拆路徑規(guī)劃、虛擬裝拆編程等主要模塊的實(shí)現(xiàn)方法。武照云等[8]運(yùn)用Unity3D結(jié)合C#腳本技術(shù)開發(fā)了機(jī)械原理與設(shè)計(jì)的4種類型實(shí)驗(yàn)項(xiàng)目。王佩等[9]基于Delmia/DPM軟件研究了復(fù)雜機(jī)械產(chǎn)品的三維裝配工藝虛擬仿真。王盼盼等[10]基于Virtools軟件設(shè)計(jì)了齒輪油泵的虛擬測(cè)繪演示系統(tǒng),但該系統(tǒng)依靠鼠標(biāo)選取、拖動(dòng)零件的方式演示,操作性較差、沉浸感較弱。
球閥由閥體、閥蓋等13種零件組成。測(cè)繪球閥時(shí),要求學(xué)生畫出所有非標(biāo)件的零件草圖、工作圖,測(cè)量并標(biāo)注尺寸、確定技術(shù)要求,最后完成裝配圖。測(cè)繪的目的是讓學(xué)生了解球閥的工作原理、用途、零件之間的裝配關(guān)系等,掌握測(cè)繪的一般程序和步驟、徒手繪制草圖的方法和技巧、測(cè)量尺寸的圓整與協(xié)調(diào)方法等。測(cè)繪的重點(diǎn)是運(yùn)用所學(xué)機(jī)械圖樣表達(dá)方法理論知識(shí)正確繪制中等復(fù)雜程度裝配圖及零件圖,難點(diǎn)是表面粗糙度、公差與配合、形位公差等技術(shù)要求的確定與標(biāo)注。
關(guān)于虛擬實(shí)驗(yàn)與真實(shí)實(shí)驗(yàn)各自優(yōu)點(diǎn)及局限性的論述見文獻(xiàn)[11]~文獻(xiàn)[14]。球閥測(cè)繪仿真系統(tǒng)的功能結(jié)構(gòu)如圖1所示。

圖1 球閥測(cè)繪仿真系統(tǒng)的功能結(jié)構(gòu)
1)操作提示模塊。提示使用該系統(tǒng)時(shí)的注意事項(xiàng)。學(xué)生在使用球閥測(cè)繪仿真系統(tǒng)時(shí),可根據(jù)需要完成漫游方向及視角的調(diào)整、放大或縮小等操作,鼠標(biāo)、鍵盤的操作及實(shí)現(xiàn)的功能如表1所示。

表1 功能鍵對(duì)照表
2)工作原理展示模塊。以360°環(huán)繞視角的方式向?qū)W生展示球閥的整體結(jié)構(gòu),以局部特寫的方式展示手柄如何正反轉(zhuǎn)動(dòng)90°帶動(dòng)閥桿和閥芯旋轉(zhuǎn)實(shí)現(xiàn)閥門的開啟和關(guān)閉動(dòng)作。用紅色箭頭模擬水流,當(dāng)閥門打開時(shí)箭頭可以通過(guò),當(dāng)閥門關(guān)閉時(shí)箭頭不能通過(guò)。
3)拆卸及組裝模塊。按照球閥的主裝配線,根據(jù)拆裝順序依次完成所有零件的拆卸及組裝。該模塊主要向?qū)W生展示球閥各個(gè)零件之間的相對(duì)位置及裝配連接關(guān)系,使學(xué)生了解球閥的拆卸與組裝順序。學(xué)生可以通過(guò)調(diào)整視角及放大和縮小等方式觀察各個(gè)零件的結(jié)構(gòu)形狀,將各個(gè)零件分為軸套類、盤類、箱體類等不同類型,為視圖的選擇奠定基礎(chǔ)。球閥拆卸后,零件的有序排列情況如圖2所示。

圖2 球閥虛擬拆卸
4)測(cè)量模塊。從需要測(cè)量的非標(biāo)件展示頁(yè)面中選擇其中的一個(gè),然后操作鍵盤調(diào)整測(cè)量工具動(dòng)端的位置,使其與被測(cè)要素接觸。若動(dòng)端與被測(cè)要素未接觸,“本次測(cè)量結(jié)果”按鈕以灰色顯示;當(dāng)動(dòng)端與被測(cè)要素接觸時(shí),“本次測(cè)量結(jié)果”按鈕以高亮度顯示,頁(yè)面上方顯示本次的測(cè)量結(jié)果。閥芯的徑向尺寸測(cè)量結(jié)果如圖3所示。一個(gè)尺寸測(cè)量結(jié)束后,單擊“下一個(gè)尺寸”按鈕測(cè)量下一個(gè)尺寸,直至完成所有尺寸的測(cè)量。

圖3 虛擬測(cè)量
5)參考圖紙模塊。當(dāng)所有非標(biāo)件的測(cè)量任務(wù)完成時(shí),“打開圖紙”按鈕以高亮度顯示。在參考圖紙模塊為學(xué)生提供了視圖選擇的參考方案。圖中的細(xì)小結(jié)構(gòu)無(wú)法查看清楚時(shí),可以按下鼠標(biāo)右鍵進(jìn)行局部放大,如圖4所示。

圖4 參考圖局部放大
球閥虛擬測(cè)繪的流程如圖5所示。學(xué)生打開球閥測(cè)繪仿真系統(tǒng)后首先閱讀操作提示,然后依次完成“工作原理展示”、“球閥拆卸”、“球閥組裝”和“非標(biāo)件測(cè)量”等任務(wù)。只有當(dāng)“非標(biāo)件測(cè)量”任務(wù)完成后才能打開參考圖樣,否則繼續(xù)執(zhí)行“非標(biāo)件測(cè)量”任務(wù),直到所有測(cè)量任務(wù)完成。學(xué)生根據(jù)零件的結(jié)構(gòu)主動(dòng)選擇表達(dá)方案、繪制草圖、測(cè)量、標(biāo)注,結(jié)合參考圖樣對(duì)比分析自己所選表達(dá)方案與參考方案的優(yōu)劣后進(jìn)行修正。

圖5 球閥虛擬測(cè)繪流程
開發(fā)流程分為方案規(guī)劃、系統(tǒng)開發(fā)、系統(tǒng)測(cè)試、發(fā)布等4個(gè)階段:1)方案規(guī)劃。在對(duì)比分析虛擬測(cè)繪與真實(shí)測(cè)繪優(yōu)勢(shì)與不足的基礎(chǔ)上剖析并劃分了球閥測(cè)繪仿真系統(tǒng)的功能模塊。2)系統(tǒng)開發(fā)。針對(duì)球閥測(cè)繪仿真系統(tǒng)的工作原理展示、拆卸及組裝、測(cè)量、參考圖樣的局部放大等難點(diǎn)進(jìn)行了研究,重點(diǎn)解決了各功能模塊的控制方法及模塊間邏輯關(guān)系的實(shí)現(xiàn)。3)系統(tǒng)測(cè)試。根據(jù)球閥測(cè)繪仿真系統(tǒng)的使用流程逐一進(jìn)行性能測(cè)試。4)發(fā)布。將系統(tǒng)發(fā)布到Windows、Android、iPhone等供學(xué)生使用。
球閥測(cè)繪仿真系統(tǒng)的主界面連接著各個(gè)場(chǎng)景。在主界面中,將主要功能模塊分別設(shè)置為對(duì)應(yīng)的按鈕并為按鈕添加了點(diǎn)擊事件,點(diǎn)擊事件的內(nèi)部編寫了回調(diào)函數(shù)。為了簡(jiǎn)化代碼,使用了拉姆達(dá)表達(dá)式:


球閥測(cè)繪仿真系統(tǒng)能夠?qū)崿F(xiàn)從一個(gè)輔助接口到另一個(gè)輔助接口的操作,如果用戶要結(jié)束當(dāng)前操作,可單擊“Back”按鈕以返回到上一個(gè)界面。
為了能夠以任意角度觀察球閥的三維模型、拆卸及組裝過(guò)程,需要為當(dāng)前場(chǎng)景的主攝像機(jī)添加腳本。實(shí)現(xiàn)方法是:獲取每幀中相機(jī)的Position和Rotate屬性值,當(dāng)移動(dòng)或者點(diǎn)擊鼠標(biāo)時(shí),通過(guò)鼠標(biāo)的變化來(lái)獲得攝像機(jī)的位移和旋轉(zhuǎn)的變化,然后將初始值與變化量相加并賦值給攝像機(jī)的屬性。鼠標(biāo)控制相機(jī)視角的代碼如下:

Quaternion表示三維空間中的旋轉(zhuǎn)。將歐拉角轉(zhuǎn)換為四元數(shù),對(duì)四元數(shù)進(jìn)行球面線性插值,再將這些四元數(shù)轉(zhuǎn)換為對(duì)應(yīng)的歐拉角后作用于角色。這樣可以解決歐拉角的萬(wàn)向鎖問(wèn)題,使角色能夠任意旋轉(zhuǎn)。
利用AE軟件將球閥拆卸與組裝的操作制作成視頻文件,為保證虛擬仿真操作的流暢性,將視頻文件轉(zhuǎn)換成了小存儲(chǔ)容量的anim格式。為了實(shí)現(xiàn)自由視角效果,將分解視頻作為場(chǎng)景中的對(duì)象直接播放,引用了Unity的AVProVideo視頻播放插件。
將球閥拆卸與組裝的視頻拆分為13個(gè)動(dòng)畫,每次點(diǎn)擊“下一步”按鈕即播放下一個(gè)動(dòng)畫。按鈕監(jiān)聽事件的代碼為:nextBtn.onClick.AddListener(NextBtnClick);點(diǎn)擊事件代碼為:


3.4.1 虛擬測(cè)量邏輯實(shí)現(xiàn)
如前所述,若測(cè)量工具動(dòng)端與被測(cè)要素未接觸時(shí),“本次測(cè)量結(jié)果”按鈕以灰色顯示。對(duì)按鈕的Interractable屬性進(jìn)行動(dòng)態(tài)控制的代碼如下:

3.4.2 虛擬測(cè)量視覺(jué)效果優(yōu)化
為了使虛擬測(cè)量動(dòng)作平滑且有緩沖的視覺(jué)效果,對(duì)調(diào)整測(cè)量工具動(dòng)端的邏輯使用了Vector3.Lerp插值法:from+(to-from)cheng×t,也就是Lerp的返回值。

當(dāng)所有非標(biāo)件測(cè)量任務(wù)完成后方可打開參考圖樣,為“打開圖紙”按鈕添加點(diǎn)擊事件的代碼如下:


闡述了球閥測(cè)繪仿真系統(tǒng)的功能結(jié)構(gòu)、虛擬測(cè)繪流程、開發(fā)流程及實(shí)現(xiàn)方法,詳細(xì)說(shuō)明了開發(fā)過(guò)程中遇到的虛擬拆卸與組裝、虛擬測(cè)量視覺(jué)效果優(yōu)化等難題的解決方法。球閥測(cè)繪仿真系統(tǒng)為學(xué)生自主學(xué)習(xí)提供了必要的資源,學(xué)生可在電腦端與手機(jī)端使用該系統(tǒng)完成球閥測(cè)繪,構(gòu)建了零部件測(cè)繪課內(nèi)與課外相結(jié)合的教學(xué)模式,實(shí)現(xiàn)了虛擬測(cè)繪系統(tǒng)拓展測(cè)繪教學(xué)時(shí)間和空間的目的。在后續(xù)版本的升級(jí)過(guò)程中,將進(jìn)一步完善測(cè)繪過(guò)程考評(píng)、成績(jī)管理、項(xiàng)目完成時(shí)間監(jiān)控與統(tǒng)計(jì)等功能,以便為學(xué)生和教師提供更加優(yōu)秀的應(yīng)用體驗(yàn)。