郭雪建,徐國棟
(西南林業(yè)大學(xué) 機(jī)械與交通學(xué)院,云南 昆明 650224)
“工程制圖”作為理工科學(xué)生,尤其是機(jī)械專業(yè)學(xué)生的一門重要課程,而機(jī)械零部件的測繪也是一種所必需的專業(yè)技能。在傳統(tǒng)的教學(xué)模式中,任課老師一般會以物理模型和幻燈片等形式進(jìn)行授課,這樣做的缺點(diǎn)是:很難形象地表達(dá)出模型的三維形式與二維形式的轉(zhuǎn)換過程。而在課后,由于沒有模型,學(xué)生的學(xué)習(xí)情況更加困難。一級減速器一般適用于低轉(zhuǎn)速、大扭矩的傳動設(shè)備。例如:電動機(jī)、內(nèi)燃機(jī)或其他高速運(yùn)轉(zhuǎn)的設(shè)備,都可以通過與減速機(jī)的輸入軸上的齒數(shù)少的齒輪嚙合,再用輸出軸上的大齒輪輸出動力,來達(dá)到減速的目的,普通的減速機(jī)也會有幾對相同原理齒輪達(dá)到理想的減速效果。減速器的大小齒輪的齒數(shù)之比,就是傳動比。減速器的繪制是制圖課程中非常重要一環(huán),學(xué)生在這個(gè)課程中經(jīng)常遇到各種問題,本虛擬實(shí)驗(yàn)室致力于減少其中的部分問題。
虛擬實(shí)驗(yàn)室主要有以下特點(diǎn):
(1)沉浸性。又稱為“臨場感”,是指通過相應(yīng)的輸出設(shè)備,給使用者營造出一種具有很高的真實(shí)度的場景,讓用戶感覺好像置身于屏幕所顯示的情節(jié)中。
(2)多感知性。即能夠使使用者在虛擬的環(huán)境中感知到多形式、多方位的信息。
(3)實(shí)時(shí)交互性。指用戶在虛擬環(huán)境中,通過各種輸入設(shè)備和輸出設(shè)備,與虛擬物體進(jìn)行的相互作用的行為,以最自然的方式進(jìn)行人機(jī)交互。
(4)自主性。是指設(shè)計(jì)者通過腳本控制虛擬系統(tǒng)中的各個(gè)物體,使得虛擬系統(tǒng)中的物體在獨(dú)立活動、相互作用以及用戶交互過程中的運(yùn)動規(guī)律滿足自然規(guī)律或者是遵從于設(shè)計(jì)者的設(shè)定活動。
(5)想象性。在虛擬系統(tǒng)環(huán)境中,用戶可以通過系統(tǒng)反饋獲得的各種信息結(jié)合自身特點(diǎn)發(fā)出的行為序列。
SolidWorks 是現(xiàn)在主流的一個(gè)三維機(jī)械設(shè)計(jì)軟件,它功能強(qiáng)大、易學(xué)易用,且在大學(xué)的教育課程中也有教授使用,基于這些特點(diǎn),我選擇使用SolidWorks 來建立物體模型。
由于文件格式不互通的問題,SolidWorks 所保存的文件不能直接導(dǎo)入到Unity3D 中,需要轉(zhuǎn)換格式。首先在SolidWorks 繪制完成后,保存為STEP 格式,繼而導(dǎo)入到3DsMax 中,導(dǎo)出FBX 格式,這樣即可在Unity3D 中成功導(dǎo)入繪制完成的模型。
在Unity3D 中,想要實(shí)現(xiàn)的各種功能,主要由綁定在各個(gè)物體上的組件來完成。但是組件的功能有限,不能滿足設(shè)計(jì)者的所有要求。因此,就需要設(shè)計(jì)者通過C#編程語言,來撰寫腳本代碼,再將腳本綁定在相應(yīng)的物體上,并通過Unity3D 的Inspector 的面板設(shè)置各個(gè)參數(shù),即可滿足設(shè)計(jì)者的設(shè)計(jì)要求。本虛擬實(shí)驗(yàn)室共使用了以下5 個(gè)腳本。
2.2.1 旋轉(zhuǎn)縮放
完成“通過鼠標(biāo)左鍵拖動控制物體旋轉(zhuǎn),通過滾動鼠標(biāo)滾輪控制物體縮放”功能的腳本Camera Control.cs。
此腳本中,Target 表示旋轉(zhuǎn)以及縮放中心的目標(biāo)物體;該腳本通過控制主相機(jī)與目標(biāo)物體的距離來完成物體的縮放工作,Distance 表示相機(jī)與目標(biāo)物體的初始距離;Distance Max(Min)分別表示鼠標(biāo)中間滑動控制的相機(jī)與物體的最大(?。┚嚯x;X(Y)Speed 分別表示鼠標(biāo)滑動時(shí)物體的X(Y)軸的旋轉(zhuǎn)速度;Y Max(Min) Limit 分別表示物體在Y 軸方向的旋轉(zhuǎn)的上(下)限;Mouse Scroll Wheel Sensitivity 表示鼠標(biāo)滾輪的靈敏度。其腳本框架為:

以及方法public float Clamp Angle(float angle,float min,float max),用以把旋轉(zhuǎn)的角度限定到給定的范圍之內(nèi)。
2.2.2 自由拖動
完成“通過鼠標(biāo)右鍵點(diǎn)擊并拖動物體”功能的Remove.cs 腳本,其中主要屬性為:chai 即為所需要拖動的主物體(父物體)。但是,在虛擬拆卸時(shí),由于虛擬零件不具備實(shí)體,不能產(chǎn)生如同現(xiàn)實(shí)世界中一樣的物理反饋,一次在零件之間常常會出現(xiàn)穿透重疊現(xiàn)象。
腳本框架為:

2.2.3 運(yùn)行原理
完成“使各個(gè)零部件移動到指定位置和運(yùn)動規(guī)律,并顯示主要零件的二維圖”功能的Run Principle.cs 腳本。
此腳本中的屬性為控制各個(gè)零部件的運(yùn)動,例如每個(gè)零部件需要運(yùn)動到的位置、速度,以及控制齒輪的旋轉(zhuǎn)速度和旋轉(zhuǎn)中心,腳本框架為:

2.2.4 零部件圖
完成“點(diǎn)擊主要零部件,展示對應(yīng)的二維圖”功能的Pictures.cs 腳本。其腳本框架為:

2.2.5 控制腳本
完成主要控制功能的Control.cs 腳本,與Unity3D 的Scene 場景中Canvas 內(nèi)的各個(gè)按鈕搭配使用,從而達(dá)到控制各個(gè)腳本實(shí)現(xiàn)/禁用的目的。腳本結(jié)構(gòu)為:

進(jìn)入虛擬實(shí)驗(yàn)室中,初始界面如圖1所示,界面中心為主物體“一級減速器”,右側(cè)有“自由拖拽”“運(yùn)行原理”“零部件圖”三個(gè)按鈕,點(diǎn)擊之后可以進(jìn)入對應(yīng)界面,并激活相應(yīng)功能腳本。在本虛擬實(shí)驗(yàn)室中的任意界面中,均可實(shí)現(xiàn)“通過鼠標(biāo)左鍵拖動控制物體旋轉(zhuǎn),通過滾動鼠標(biāo)滾輪控制物體縮放”功能。

圖1 初始界面
點(diǎn)擊“自由拖拽”按鈕后,會激活Remove.cs 腳本,可以通過鼠標(biāo)右鍵隨意拖動一級減速器的各個(gè)零部件。在界面右下角會出現(xiàn)“返回”按鈕,點(diǎn)擊之后會返回到初始界面。如圖2所示。

圖2 自由拖拽界面
點(diǎn)擊“運(yùn)行原理”按鈕后,會激活Run Principle.cs 腳本,此場景中各個(gè)零部件會按照給定速度移動到指定位置,以展示內(nèi)部中齒輪的旋轉(zhuǎn),還可以在此界面中通過點(diǎn)擊主要零件獲取其二維圖紙,如圖3所示。

圖3 運(yùn)行原理界面
點(diǎn)擊“零部件圖”按鈕后,會激活Part Hide.cs 腳本,在此界面中,點(diǎn)擊任一零件,將隱藏其他零件以便于觀察該零件。如圖4所示。

圖4 零部件圖界面
對于教育資源不夠充分的學(xué)校來說,實(shí)驗(yàn)室教學(xué)的不足一直是影響學(xué)生教育的一大因素。隨著計(jì)算機(jī)技術(shù)、虛擬現(xiàn)實(shí)技術(shù)的發(fā)展,虛擬實(shí)驗(yàn)室對于學(xué)生的教育越來越能起到重要的影響。本文設(shè)計(jì)的虛擬實(shí)驗(yàn)室,使用Unity3D 平臺,可以生成電腦單機(jī)版的.exe 可執(zhí)行文件。解決了實(shí)驗(yàn)室教學(xué)設(shè)備昂貴稀少導(dǎo)致的學(xué)生無法訓(xùn)練的難題。