王桂錄
(鄭州科技學院 機械工程學院,鄭州 450064)
虛擬仿真實驗教學項目是通過虛擬仿真實現教學目標的項目[1]。教育部《關于2017—2020年開展示范性虛擬仿真實驗教學項目建設的通知》(教高廳〔2017〕4號)[2]和《關于開展國家虛擬仿真實驗教學項目建設工作的通知》(教高函〔2018〕5號)[3]指出,虛擬仿真實驗教學項目是拓展實驗教學內容廣度和深度、延伸實驗教學時間和空間、提升實驗教學質量和水平的重要舉措;堅持問題導向、需求導向開展虛擬仿真實驗教學項目建設。
近幾年,虛擬仿真已經成為高校實驗教學改革的熱點[4]。馮桂珍等[5]構建了減速器虛擬拆裝實驗,在產品拆裝教學等環(huán)節(jié)中取得了良好的效果。丁毓峰等[6]基于Unity3D采用B/S架構搭建了常見的4種機電產品的虛擬拆裝系統(tǒng),在網頁端動態(tài)展示了產品的工作原理與拆裝過程。馮立艷等[7]基于Unity3D開發(fā)了機械基礎虛擬實驗系統(tǒng),詳細介紹了約束關系及裝拆路徑規(guī)劃、虛擬裝拆編程等主要模塊的實現方法。武照云等[8]運用Unity3D結合C#腳本技術開發(fā)了機械原理與設計的4種類型實驗項目。王佩等[9]基于Delmia/DPM軟件研究了復雜機械產品的三維裝配工藝虛擬仿真。王盼盼等[10]基于Virtools軟件設計了齒輪油泵的虛擬測繪演示系統(tǒng),但該系統(tǒng)依靠鼠標選取、拖動零件的方式演示,操作性較差、沉浸感較弱。
球閥由閥體、閥蓋等13種零件組成。測繪球閥時,要求學生畫出所有非標件的零件草圖、工作圖,測量并標注尺寸、確定技術要求,最后完成裝配圖。測繪的目的是讓學生了解球閥的工作原理、用途、零件之間的裝配關系等,掌握測繪的一般程序和步驟、徒手繪制草圖的方法和技巧、測量尺寸的圓整與協調方法等。測繪的重點是運用所學機械圖樣表達方法理論知識正確繪制中等復雜程度裝配圖及零件圖,難點是表面粗糙度、公差與配合、形位公差等技術要求的確定與標注。
關于虛擬實驗與真實實驗各自優(yōu)點及局限性的論述見文獻[11]~文獻[14]。球閥測繪仿真系統(tǒng)的功能結構如圖1所示。
圖1 球閥測繪仿真系統(tǒng)的功能結構
1)操作提示模塊。提示使用該系統(tǒng)時的注意事項。學生在使用球閥測繪仿真系統(tǒng)時,可根據需要完成漫游方向及視角的調整、放大或縮小等操作,鼠標、鍵盤的操作及實現的功能如表1所示。
表1 功能鍵對照表
2)工作原理展示模塊。以360°環(huán)繞視角的方式向學生展示球閥的整體結構,以局部特寫的方式展示手柄如何正反轉動90°帶動閥桿和閥芯旋轉實現閥門的開啟和關閉動作。用紅色箭頭模擬水流,當閥門打開時箭頭可以通過,當閥門關閉時箭頭不能通過。
3)拆卸及組裝模塊。按照球閥的主裝配線,根據拆裝順序依次完成所有零件的拆卸及組裝。該模塊主要向學生展示球閥各個零件之間的相對位置及裝配連接關系,使學生了解球閥的拆卸與組裝順序。學生可以通過調整視角及放大和縮小等方式觀察各個零件的結構形狀,將各個零件分為軸套類、盤類、箱體類等不同類型,為視圖的選擇奠定基礎。球閥拆卸后,零件的有序排列情況如圖2所示。
圖2 球閥虛擬拆卸
4)測量模塊。從需要測量的非標件展示頁面中選擇其中的一個,然后操作鍵盤調整測量工具動端的位置,使其與被測要素接觸。若動端與被測要素未接觸,“本次測量結果”按鈕以灰色顯示;當動端與被測要素接觸時,“本次測量結果”按鈕以高亮度顯示,頁面上方顯示本次的測量結果。閥芯的徑向尺寸測量結果如圖3所示。一個尺寸測量結束后,單擊“下一個尺寸”按鈕測量下一個尺寸,直至完成所有尺寸的測量。
圖3 虛擬測量
5)參考圖紙模塊。當所有非標件的測量任務完成時,“打開圖紙”按鈕以高亮度顯示。在參考圖紙模塊為學生提供了視圖選擇的參考方案。圖中的細小結構無法查看清楚時,可以按下鼠標右鍵進行局部放大,如圖4所示。
圖4 參考圖局部放大
球閥虛擬測繪的流程如圖5所示。學生打開球閥測繪仿真系統(tǒng)后首先閱讀操作提示,然后依次完成“工作原理展示”、“球閥拆卸”、“球閥組裝”和“非標件測量”等任務。只有當“非標件測量”任務完成后才能打開參考圖樣,否則繼續(xù)執(zhí)行“非標件測量”任務,直到所有測量任務完成。學生根據零件的結構主動選擇表達方案、繪制草圖、測量、標注,結合參考圖樣對比分析自己所選表達方案與參考方案的優(yōu)劣后進行修正。
圖5 球閥虛擬測繪流程
開發(fā)流程分為方案規(guī)劃、系統(tǒng)開發(fā)、系統(tǒng)測試、發(fā)布等4個階段:1)方案規(guī)劃。在對比分析虛擬測繪與真實測繪優(yōu)勢與不足的基礎上剖析并劃分了球閥測繪仿真系統(tǒng)的功能模塊。2)系統(tǒng)開發(fā)。針對球閥測繪仿真系統(tǒng)的工作原理展示、拆卸及組裝、測量、參考圖樣的局部放大等難點進行了研究,重點解決了各功能模塊的控制方法及模塊間邏輯關系的實現。3)系統(tǒng)測試。根據球閥測繪仿真系統(tǒng)的使用流程逐一進行性能測試。4)發(fā)布。將系統(tǒng)發(fā)布到Windows、Android、iPhone等供學生使用。
球閥測繪仿真系統(tǒng)的主界面連接著各個場景。在主界面中,將主要功能模塊分別設置為對應的按鈕并為按鈕添加了點擊事件,點擊事件的內部編寫了回調函數。為了簡化代碼,使用了拉姆達表達式:
球閥測繪仿真系統(tǒng)能夠實現從一個輔助接口到另一個輔助接口的操作,如果用戶要結束當前操作,可單擊“Back”按鈕以返回到上一個界面。
為了能夠以任意角度觀察球閥的三維模型、拆卸及組裝過程,需要為當前場景的主攝像機添加腳本。實現方法是:獲取每幀中相機的Position和Rotate屬性值,當移動或者點擊鼠標時,通過鼠標的變化來獲得攝像機的位移和旋轉的變化,然后將初始值與變化量相加并賦值給攝像機的屬性。鼠標控制相機視角的代碼如下:
Quaternion表示三維空間中的旋轉。將歐拉角轉換為四元數,對四元數進行球面線性插值,再將這些四元數轉換為對應的歐拉角后作用于角色。這樣可以解決歐拉角的萬向鎖問題,使角色能夠任意旋轉。
利用AE軟件將球閥拆卸與組裝的操作制作成視頻文件,為保證虛擬仿真操作的流暢性,將視頻文件轉換成了小存儲容量的anim格式。為了實現自由視角效果,將分解視頻作為場景中的對象直接播放,引用了Unity的AVProVideo視頻播放插件。
將球閥拆卸與組裝的視頻拆分為13個動畫,每次點擊“下一步”按鈕即播放下一個動畫。按鈕監(jiān)聽事件的代碼為:nextBtn.onClick.AddListener(NextBtnClick);點擊事件代碼為:
3.4.1 虛擬測量邏輯實現
如前所述,若測量工具動端與被測要素未接觸時,“本次測量結果”按鈕以灰色顯示。對按鈕的Interractable屬性進行動態(tài)控制的代碼如下:
3.4.2 虛擬測量視覺效果優(yōu)化
為了使虛擬測量動作平滑且有緩沖的視覺效果,對調整測量工具動端的邏輯使用了Vector3.Lerp插值法:from+(to-from)cheng×t,也就是Lerp的返回值。
當所有非標件測量任務完成后方可打開參考圖樣,為“打開圖紙”按鈕添加點擊事件的代碼如下:
闡述了球閥測繪仿真系統(tǒng)的功能結構、虛擬測繪流程、開發(fā)流程及實現方法,詳細說明了開發(fā)過程中遇到的虛擬拆卸與組裝、虛擬測量視覺效果優(yōu)化等難題的解決方法。球閥測繪仿真系統(tǒng)為學生自主學習提供了必要的資源,學生可在電腦端與手機端使用該系統(tǒng)完成球閥測繪,構建了零部件測繪課內與課外相結合的教學模式,實現了虛擬測繪系統(tǒng)拓展測繪教學時間和空間的目的。在后續(xù)版本的升級過程中,將進一步完善測繪過程考評、成績管理、項目完成時間監(jiān)控與統(tǒng)計等功能,以便為學生和教師提供更加優(yōu)秀的應用體驗。