999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于Unity3D 的機電產品虛擬拆裝實驗系統

2020-06-18 04:06:22丁毓峰閔新普宋春生
實驗室研究與探索 2020年3期
關鍵詞:按鈕實驗模型

丁毓峰, 徐 鑫, 閔新普, 宋春生

(武漢理工大學機電工程學院,武漢430070)

0 引 言

機械設計和機械原理等課程是機械工程、汽車工程相關專業的專業基礎課,在這些課程中,學生應該在前期工程圖學的基礎上,熟悉機電產品的工作原理,典型機構的設計流程。鑒于此,很多高校的機械設計和機械原理課程都會開設減速器等產品的拆裝實驗課。傳統的教學方式受限于空間、時間以及實驗儀器設備數量等因素[1,2],學生往往在較短的時間內匆忙做完物理拆裝實驗,對典型直齒輪傳動機構的原理有了初步認識,對眾多行星輪減速器、手動變速箱等復雜產品的工作原理較少涉及,這在一定程度上影響了實驗效果,不利于學生實踐能力的培養。隨著信息技術的發展,虛擬現實技術被越來越多地應用到了教學中[3,4],國內許多高等院校都積極開展采用虛擬現實、虛擬仿真等技術幫助開發各種類型的實驗室。馮桂珍等[5]在研究了Unity3D 構建三維交互式虛擬場景的方法和關鍵技術的基礎上,以典型的減速器為例,構建了減速器虛擬拆裝實驗,開發了基于移動平臺獨立運行的APP,在結構認知、產品拆裝、課程設計等教學和實踐環節中取得了良好的效果。丁雨等[6]通過分析減速器的機械結構和運動模型,在Unity3D 中完成了減速器模型的拆裝,實現了減速器的碰撞與摩擦,并完成了減速器驅動方式的腳本仿真。

張厚升等[7]通過Simulink 建立了雙閉環控制的繞線式異步電機串級調速系統仿真模型,并將其引入課堂。袁容等[8]使用Unity3D與HTC VIVE 虛擬現實開發工具,開發了虛擬場景下的減速器拆裝實驗教學平臺,有效解決了實驗課程對場地、器材、教師等教學資源的過度依賴。Ouyang 等[9]在Unity3D 上搭建了交互式化工三維虛擬實習平臺,在虛擬環境中重新創建真實的化工廠部分,演示了主要設備的結構和工作原理,培養學生的操作能力,平臺對突發事件的虛擬處理有助于提高學生的生產安全意識。Woodfield 等[10]將虛擬仿真實驗與化學實驗相結合,將復雜的化學實驗通過虛擬現實系統引入課堂,并對學生的感受進行了評估,課程效果顯著。朱安慶等[11]在Unity3D 中開發船舶制造虛擬仿真教學系統,將虛擬現實技術應用到船舶制造工程技術類課程教學中,提高了教學效率,增加了學生對相關知識的認知程度。Lu 等[12]基于Web開發了虛擬EPMA 實驗室,包含了交互式模塊,用于實驗裝置和儀器的虛擬操作實踐,使得學生通過預習,在實驗室可以直接進行實驗。王建華等[13]將Unity3D與虛擬現實頭戴設備進行交互連接,實現人機交互,將汽車零部件拆裝過程虛擬化,使得教學過程更加生動,且突破了傳統拆裝實訓中存在的設備數量有限、易損壞、教學用具更新速度有限等限制。

Unity3D 軟件是三維游戲引擎,支持C #和JavaScript 語言進行開發,可以對虛擬對象進行邏輯控制和交互操作,該軟件具有強大的跨平臺特性,可以發布并運行在PC、IOS 和Android 等多種平臺。Unity3D可通過WebGL工程選項將Unity3D 項目以JavaScript的形式發布,使用Html5 技術和WebGL 渲染API 接口,借助系統顯卡在瀏覽器中展示3D 場景和模型。Web是基于超文本和HTTP的跨平臺分布式圖形信息系統,可以將圖形、聲音、視頻集合于一體進行展示[14]。由于Unity3D與Web強大的跨平臺特性,本實驗系統采用Unity3D 為開發平臺,結合SolidWorks、3DMax 和Photoshop等圖形編輯工具,建立機電產品虛擬拆裝模型,以C#腳本編程驅動,實現虛擬與現實的交互和機電產品的結構動態展示。將拆裝模型發布為WebGL工程后,通過JavaScript嵌入Web端,完成Web端與虛擬模型的交互任務。

1 基于Unity3D 的機電產品虛擬拆裝實驗平臺體系結構

基于Unity3D 的機電產品虛擬拆裝實驗平臺采用瀏覽器/服務器(Browser/Serves,B/S)架構,如圖1 所示。模型和腳本運行在服務器上,在客戶端使用瀏覽器訪問服務器網址就可以進行虛擬拆裝實驗。系統包括電主軸,手動變速箱,行星輪減速器,2 級減速器等機電產品虛擬實驗的交互拆裝、零部件結構認知與分析、虛擬環境的設置等功能。

圖1 機電產品虛擬拆裝實驗平臺架構

2 產品虛擬拆裝實驗的開發流程

2.1 模塊化開發

采用模塊化設計,便于系統功能的進一步擴展。定義虛擬拆裝實驗軟件各組成模塊,模塊之間采用接口進行參數傳遞。

2.2 基于Unity3D 的虛擬實驗開發流程

和開放圖形庫(Open Graphics Library,OpenGL)等圖形化平臺相比,將Unity3D 模型發布的WebGl 作為開發平臺進行虛擬實驗開發效率高,結合Solidworks、3DMax 和Photoshop等軟件工具,利用C#編程控制交互和動態特性,以常見的齒輪減速器為例,構建了一個基于Web的虛擬拆裝實驗系統,如果有在移動平臺上學習的需要,可以發布基于Android/IOS 的移動版虛擬拆裝實驗系統,便于學生使用。

Unity3D內部有一些快速簡單形體構型選項,對于復雜形體,需要使用外部三維建模軟件(Solidworks、Cinema4D 等)導入模型。具體的做法是,使用Solidworks進行機電產品建模并生成wrl 文件格式模型,將模型導入Cinema4D 中進行圖形渲染,在Cinema4D 中修正模型各模塊的坐標系,以方便在Unity3D中以腳本驅動模型的運動。將渲染后的模型導出為fbx格式文件,導入Unity3D中。

Unity3D模型通過C#腳本驅動,實現交互功能和動態特性。通過使用Unity3D API 實現鼠標、鍵盤觸發模型動作,調整展示機電產品模型。將模型發布為WebGL,網頁端JavaScript與Unity3D 能便捷地實現通信,完成數據在網頁端的動態展示、通過網頁端Button來操作模型等功能。虛擬實驗平臺開發流程如圖2所示。

圖2 系統開發流程

2.3 產品模型的輕量化處理

為解決產品三維模型在性能和資源有限的Web端上快速瀏覽的問題,需要利用三維建模工具對原始模型進行輕量化處理,得到通過WebGL瀏覽的輕量化模型[15]。生成的輕量化模型必須滿足:

(1)保證在Web 端上的瀏覽體驗。為了很好的瀏覽體驗,WebGL 模型必須具有較快的顯示速度,且具有快速的交互性能。所以模型文件必須合理組織,不能太過復雜。

(2)需要保證在工程教學領域的可用性。輕量化處理的模型能用于教學示例,完整展示機電產品的組成結構和拆卸裝配過程。

(3)具有較小的文件體積。在輕量化處理的過程中,篩選出需要展示的幾何構型。較小的文件體積能夠保證模型在網頁端快速加載。

2.4 交互功能設計

在機電產品虛擬拆裝實驗系統中設計交互功能,能夠提升學生學習過程中的參與感。交互功能包括對模型整體場景的操作交互、減速器拆裝過程的交互以及Unity3D 模型與網頁的交互。交互過程通過Unity3D 應用程序接口(Application Programming Interface,API)等工具實現。

2.4.1 場景交互

為了增加虛擬拆裝實驗的豐富性和場景的生動性,系統設計了整體場景的操作交互過程,包括拖動減速器模型移動和旋轉、減速器模型外殼透明化等。方便學生更細致地了解模型的整體結構和局部細節。鼠標點擊、拖動可以在場景中移動(鼠標左鍵操作)和旋轉模型(鼠標右鍵操作)。減速器模型的移動和旋轉是通過修改主相機(MainCamera)和模型的相對位置(Position)與方位(Rotation)來實現的。為方便開發過程,本系統采用攝像機圍繞模型移動和旋轉作為實現方法。給主相機綁定相應的驅動腳本,通過Unity-Scripting API 中的Input. GetMouseButton 來判斷鼠標的操作事件。在腳本Update函數中,判斷是鼠標左鍵還是右鍵點擊,使用GameObject. transform.RotateAround 方法實現主相機繞模型的旋轉,其中GameObject為聲明的主相機對象,模型對象為該方法的參數。旋轉角度和移動距離,通過Input. GetAxis(“Mouse X”)和Input.GetAxis(“Mouse Y”)返回的數值進行合適的縮放來確定,保證操作體驗即可,如圖3所示。

圖3 場景交互實現原理

減速器模型外殼透明化的功能是為了方便從整體上觀察減速器內部結構設計的。在場景中設置On/Off樣式的UI,點擊UI 來完成透明化的操作。使用NGUI插件來設計外殼透明按鈕,NGUI 可以方便地添加組件Atlas 和Button。添加Button 后在Inspector-OnClick 屬性中選擇點擊按鈕后對應的通告物體(Notify)所綁定的腳本中的方法(Method),就可以選擇點擊按鈕后執行的動作。

點擊按鈕后,gameObject. SetActive 方法可以使當前按鈕不激活,并激活對應的另一個按鈕。在減速器外殼的腳本中,首先聲明有透明和不透明的兩種材質,并在Inspector 中將其選定為對應的材質,修改Renderer 組件中的Material 屬性即可修改物體的材質,改變gameObject. GetComponent <Renderer >().material的值即可。

2.4.2 拆裝過程交互

減速器模型較為復雜,將減速器零件進行分組拆裝可以方便學生對減速器的認知。以典型的2 級減速器為例,將2 級減速器分為5 個部分(底座無需拆裝),依次拆卸和安裝,如表1 所示。

表1 2 級減速器拆裝部件

減速器的拆裝方式為逐級拆裝,拆裝動作通過點擊事件觸發,上一組拆裝完成后,才能進入下一組的拆裝,且只有拆卸完成后才能開始裝配。交互拆裝的流程如圖4 所示。

圖4 減速器拆裝流程

拆卸與裝配控制按鈕通過Unity3D 中內置UI 系統的OnGUI方法實現。

點擊第1 組模型虛擬實體,使第1 組零件開始按預定軌跡拆卸。Unity3D API中的OnMouseDown 方法可以通過Unity射線(Ray)檢測碰撞體(Collider)。給模型添加碰撞體組件后,就可以在OnMouseDown 方法下編寫驅動模型運動的腳本了。后續的拆卸與裝配過程實現方法與上述過程類似。

2.4.3 模型與網頁交互

系統中設計了模型與網頁交互的部分,主要是通過Web端中的按鈕來控制產品工作原理的展示和實時繪制軸系運動狀態曲線。為更直觀展示減速器的工作原理,在Web端上設計了驅動模型傳動鏈中軸系零件運動的按鈕,點擊按鈕并輸入輸入軸的轉速,能夠在模型中展示減速器的運動過程。實時向網頁端傳輸各軸的轉速,通過Echarts控件將其繪制成n-t曲線。

當為Web構建內容時,WebGL 需要與Web 上的其他內容通信,或者使用Unity3D 中的API 來實現功能。在此情況下,Unity3D 需要直接與瀏覽器的JavaScript對接。

網頁按鈕驅動產品模型運動是通過Unity3D 和HTML 通信來完成的。ActiveX 控件具有一個SendMessage()的函數,HTML 通過該函數與Unity3D進行通信,通過該函數可以向Unity3D 中傳遞對象名稱、函數名稱和函數的參數。點擊網頁上的按鈕后,gameInstance. SendMessage (“ GameObject ”,“FunName”,Parameter1,Parameter 2,Parameter 3)就會使Unity3D中名為“GameObject”的對象執行腳本中名為“FunName”的函數,函數的參數為Parameter1-3。也可以不傳遞參數或傳遞單參數。

Unity3D需要實時向網頁端傳遞模型運行狀態數據,例如軸的轉速、轉矩信息。Application.ExternalCall()可以調用HTML里定義的JavaScript 函數并傳遞參數。為了展示實時狀態數據,將該函數寫在Update 方法中,模型運行過程中該函數始終執行。在Unity3D端將模型的轉速等信息存于鏈表中,參數形式傳遞給HTML后,JavaScript將每一次收到的參數通過Echarts控件繪制成對應的曲線。

2.4.4 產品工作原理的動態展示

以2 級齒輪減速器為例,減速器通過齒輪嚙合傳動降低轉速,傳動比與嚙合齒輪副的齒數密切相關。輸入軸轉速為n時,假設輸入軸齒輪齒數為z1,中間軸與輸入軸嚙合齒輪齒數為z2、與輸出軸嚙合齒輪為z3,輸出軸齒輪齒數為z4,則減速器傳動比為(z2/z1)×(z4/z3),輸出軸的轉速為n ×(z1×z3)/(z2×z4)。為了動態展示減速器的工作原理,Web 端按鈕驅動Unity3D模型后,模型應該展示齒輪副的旋轉運動以及減速器的減速效果。在系統設計中,將各軸所在的軸系零件打組,通過Transform組件的Rotate屬性使軸系部件繞軸旋轉,展示減速器工作的運動過程。通過網頁端輸入轉速數值,傳遞給Unity3D模型中,實現調速的效果,展示減速器的減速原理。產品工作原理的動態展示如圖5 所示。

圖5 產品工作原理動態展示

3 系統實現及應用

實驗系統依據B/S 架構,以4 種典型的機電產品為實驗對象,構建一套基于Web/Unity3D 的虛擬拆裝系統,包括電主軸、2 級錐齒輪減速箱、行星輪減速箱和手動減速箱。以WebGL 形式發布并嵌入Web 端中,可獨立運行于支持WebGL的PC 端瀏覽器上。圖6 為2 級錐齒輪減速器拆裝界面,圖7 為機電產品運動狀態展示界面。

4 結 語

本文介紹了基于Unity3D的三維交互式虛擬場景的構建方法和關鍵技術。在外部三維CAD 工具軟件中建立機電產品模型并進行輕量化處理,通過交互手段實現Unity3 D端外部事件的交互、Web和Unity3 D的交互,展示了機電產品的工作原理和運行數據,搭建了B/S架構的機電產品虛擬拆裝系統。本系統兼容性強,可獨立在瀏覽器上運行,訪問速度快,降低了教學成本,減少實驗過程可能發生的安全事故,便于實驗室教師的工作和學生的學習。系統的可交互性強,過程展示清晰生動,提高了學生的學習興趣和實驗過程中的參與感,充分展示了高校以學生為主體的教學觀念。實驗系統的實施為高校工程類人才的培養提供了新的方法和思路。

猜你喜歡
按鈕實驗模型
這些按鈕能隨便按嗎?
一半模型
當你面前有個按鈕
記一次有趣的實驗
重要模型『一線三等角』
重尾非線性自回歸模型自加權M-估計的漸近分布
做個怪怪長實驗
3D打印中的模型分割與打包
NO與NO2相互轉化實驗的改進
實踐十號上的19項實驗
太空探索(2016年5期)2016-07-12 15:17:55
主站蜘蛛池模板: 国产精彩视频在线观看| 免费午夜无码18禁无码影院| 狼友视频一区二区三区| 成人欧美在线观看| 欧美国产视频| av大片在线无码免费| 亚洲视频免费播放| 国产又粗又猛又爽| 国产乱子伦精品视频| 毛片免费视频| 一级一级一片免费| 亚洲成aⅴ人在线观看| 久久精品女人天堂aaa| 亚洲Va中文字幕久久一区| 国产人人射| 国产伦精品一区二区三区视频优播| 亚洲中文字幕国产av| 91久久偷偷做嫩草影院电| 久久精品91麻豆| 欧美翘臀一区二区三区| 久久无码av一区二区三区| 亚洲区欧美区| 亚洲第一成网站| 日韩午夜片| 日本黄网在线观看| 欧美日韩资源| 久久精品aⅴ无码中文字幕| 日本亚洲欧美在线| 欧美三级日韩三级| 欧美a级完整在线观看| 亚洲性网站| 精品国产Av电影无码久久久| 欧美啪啪网| 国产精品人人做人人爽人人添| 国产不卡在线看| 国产成本人片免费a∨短片| 香蕉99国内自产自拍视频| 亚洲人免费视频| 亚洲黄色片免费看| 福利视频99| 99999久久久久久亚洲| 亚洲婷婷在线视频| 欧美亚洲一区二区三区在线| 欧美在线视频不卡| 亚洲第一视频网| 国产精品自拍合集| 亚洲成av人无码综合在线观看| 国产嫖妓91东北老熟女久久一| 91 九色视频丝袜| jijzzizz老师出水喷水喷出| 无码内射在线| 国产在线观看一区二区三区| 国产成人啪视频一区二区三区| 欧美成人亚洲综合精品欧美激情| 国产精品网址你懂的| 四虎永久免费地址| 色吊丝av中文字幕| 免费又爽又刺激高潮网址| 国产欧美视频一区二区三区| 欧美在线三级| 亚洲另类第一页| 亚洲国产成人精品无码区性色| 91无码网站| 午夜a级毛片| 成人免费一级片| 亚洲欧洲自拍拍偷午夜色| 亚洲第一成年人网站| 五月天久久综合| 亚洲日韩精品欧美中文字幕| 久久久亚洲色| 99精品国产高清一区二区| 蜜桃臀无码内射一区二区三区| 亚洲VA中文字幕| 亚洲成人黄色在线| 亚欧美国产综合| 久久五月视频| 高清视频一区| 亚洲中文字幕无码mv| 99国产精品一区二区| 国产哺乳奶水91在线播放| 麻豆国产精品视频| 亚洲二区视频|