李亞?wèn)| , 譚桂玲
(天津現(xiàn)代職業(yè)技術(shù)學(xué)院,天津 300350)
機(jī)械手表作為精密機(jī)械計(jì)時(shí)儀器和裝飾用品,實(shí)用性和裝飾性是必須要具備的。機(jī)械手表應(yīng)當(dāng)走時(shí)準(zhǔn)確、使用方便、工藝精細(xì)、外表美觀和經(jīng)久耐用,連續(xù)走時(shí)時(shí)間大于36 h,一些表還具有防水、防震、防磁性的功能。機(jī)械手表從簡(jiǎn)單三針系列到世界三大復(fù)雜手表陀飛輪、三問(wèn)和萬(wàn)年歷系列,其零件數(shù)量為60~650件,表盤直徑25 mm~50 mm,機(jī)芯厚度1.64 mm~12 mm。由于機(jī)械手表零件數(shù)量多、尺寸非常小、工藝復(fù)雜和零部件容易損壞等特點(diǎn),導(dǎo)致在實(shí)際培訓(xùn)或教學(xué)裝配中,出現(xiàn)裝配工藝難理解、零部件結(jié)構(gòu)難觀察、零部件損壞率高的問(wèn)題,很難提高裝配質(zhì)量和教學(xué)質(zhì)量。
虛擬現(xiàn)實(shí)技術(shù)就是將人們的想象力和科學(xué)技術(shù)結(jié)合到了一起,讓想法變成“現(xiàn)實(shí)”。這種身臨其境的感覺(jué)帶給人們前所未有的體驗(yàn),人們不僅能看到虛擬的世界,還可以通過(guò)一些交互方式與虛擬世界中的物品進(jìn)行互動(dòng)[1]。從應(yīng)用角度來(lái)看,虛擬現(xiàn)實(shí)技術(shù)的含義體現(xiàn)在桌面、硬件設(shè)施、存儲(chǔ)以及網(wǎng)絡(luò)四方面的虛擬化[2]。利用虛擬現(xiàn)實(shí)技術(shù)對(duì)夾具三維模型進(jìn)行預(yù)裝配,可驗(yàn)證裝配設(shè)計(jì)和操作的正確與否,以便及時(shí)發(fā)現(xiàn)裝配中的問(wèn)題,以檢驗(yàn)夾具各元件的可裝配性[3]。目前,虛擬現(xiàn)實(shí)技術(shù)已廣泛應(yīng)用于醫(yī)學(xué)、娛樂(lè)、軍事、航天、建筑等領(lǐng)域。EON Studio 是美國(guó)某公司開(kāi)發(fā)的專業(yè)虛擬現(xiàn)實(shí)軟件,具有操作界面智能、節(jié)點(diǎn)功能豐富、模擬程序文件小、交互性好等優(yōu)點(diǎn)。EON Studio 應(yīng)用程序也可以與其他支持微軟ActiveX控件工具相結(jié)合,如Visual Basic[4]。利用Visual Basic中類的成員函數(shù)完成應(yīng)用程序?qū)ON Studio模擬程序的加載,達(dá)到實(shí)時(shí)交互的目的。
虛擬裝配技術(shù)是虛擬現(xiàn)實(shí)技術(shù)的重要組成部分,主要包括面型裝配特征的建模技術(shù)、模型仿真技術(shù)、碰撞檢測(cè)技術(shù)等,虛擬裝配可以提前驗(yàn)證設(shè)計(jì)和裝配過(guò)程的合理性,并記錄整個(gè)裝配路徑,生成裝配過(guò)程報(bào)告[5]。若將VR技術(shù)和高校實(shí)驗(yàn)教學(xué)相結(jié)合,創(chuàng)建虛擬仿真實(shí)驗(yàn),學(xué)生可在虛擬環(huán)境中開(kāi)展實(shí)驗(yàn),達(dá)到教學(xué)大綱所要求的教學(xué)目的,這種新的實(shí)驗(yàn)教學(xué)模式,有利于提高實(shí)踐能力,培養(yǎng)創(chuàng)新精神,適應(yīng)發(fā)展對(duì)人才培養(yǎng)的新要求[6]。
本系統(tǒng)的設(shè)計(jì)方案如下:首先,利用SolidWorks三維建模軟件建立三維模型;其次,將建立的三維模型導(dǎo)入到EON Studio虛擬現(xiàn)實(shí)軟件中進(jìn)行設(shè)置,利用功能節(jié)點(diǎn)的模擬樹(Simulation Tree)中階層的安排和節(jié)點(diǎn)屬性的設(shè)置,以及在流程控制視窗(Routes:Simulation)中邏輯關(guān)系的確定來(lái)實(shí)現(xiàn)功能節(jié)點(diǎn)間的互動(dòng);最后,利用Visual Basic為集成工具進(jìn)行系統(tǒng)登錄界面和系統(tǒng)界面設(shè)計(jì),實(shí)現(xiàn)Visual Basic應(yīng)用程序?qū)ON Studio模擬程序的加載,構(gòu)成一個(gè)完整的機(jī)械手表虛擬裝配仿真系統(tǒng)。本設(shè)計(jì)方案的框架流程圖如圖1所示。
圖1 設(shè)計(jì)方案框架流程圖
利用SolidWorks三維建模軟件建立前閥部分柄頭、柄軸、離合輪、定檔簧、離合桿、拉檔、拉檔釘和拉檔軸等零件的三維實(shí)體靜態(tài)模型,按照裝配規(guī)劃序列先組裝柄頭部件、拉檔部件和離合桿部件等部件,再組裝前閥部分三維組件模型,并對(duì)模型進(jìn)行材質(zhì)、燈光渲染,增強(qiáng)模型在虛擬環(huán)境中的真實(shí)感。
在EON Studio虛擬現(xiàn)實(shí)軟件中,將Frame節(jié)點(diǎn)拖到Simulation Tree中的Scene之下,利用EON Studio中自帶的SolidWorks插件將前閥部分三維模型導(dǎo)入Frame節(jié)點(diǎn)下,通過(guò)設(shè)置Qianfabufen.SLDASM的Property Bar中Scale和Orientation的參數(shù)調(diào)整模型在EON Studio中的狀態(tài)。在導(dǎo)入過(guò)程中,軟件會(huì)對(duì)模型數(shù)據(jù)進(jìn)行壓縮處理并重新計(jì)算,模型數(shù)據(jù)量會(huì)變小,模擬樹視窗中自動(dòng)生成一個(gè)默認(rèn)的模型層次數(shù)據(jù)結(jié)構(gòu)。為了便于后續(xù)的人機(jī)交互開(kāi)發(fā)和運(yùn)動(dòng)控制,需要根據(jù)交互和運(yùn)動(dòng)控制的需求,重新構(gòu)建復(fù)合邏輯的前閥部分虛擬模型的層次數(shù)據(jù)結(jié)構(gòu),對(duì)每個(gè)模型的從屬關(guān)系與父子節(jié)點(diǎn)進(jìn)行設(shè)定。
EON主要是利用樹狀層次進(jìn)行動(dòng)作的編排,利用母節(jié)點(diǎn)控制子節(jié)點(diǎn)的所有屬性來(lái)改變子節(jié)點(diǎn)的移動(dòng)、旋轉(zhuǎn)、放大、隱藏、上色[7]。在虛擬環(huán)境中人與零部件之間的交互設(shè)計(jì)是通過(guò)傳感器觸發(fā)、路由機(jī)制和事件驅(qū)動(dòng)等組成[8]。在EON Studio中常用的傳感器節(jié)點(diǎn)有ClickSensor、MouseSensor、TouchSensor和KeyboardSensor,常用的圖形用戶界面控制觸發(fā)節(jié)點(diǎn)有2D Text2和2D Image2。功能節(jié)點(diǎn)間通過(guò)事件輸出收送區(qū)域EvenOut接口和事件輸入收送區(qū)域EvenIn接口,進(jìn)行邏輯連線的路由機(jī)制驅(qū)動(dòng)節(jié)點(diǎn)之間的消息傳遞。在EON Studio中常用的運(yùn)動(dòng)控制節(jié)點(diǎn)有Place、Rotate、Motion和Position等[9-10]。
當(dāng)鼠標(biāo)按下或彈起時(shí),觸發(fā)OnButtonDown或OnButtonUp信號(hào),由2D Text2節(jié)點(diǎn)將信號(hào)傳遞給控制節(jié)點(diǎn)Place,Place節(jié)點(diǎn)可以設(shè)置x、y、z來(lái)控制零部件沿x、y、z三維坐標(biāo)方向上的移動(dòng),設(shè)置h、p、r來(lái)控制零部件沿x、y、z三個(gè)軸旋轉(zhuǎn)的角度。前閥部分人機(jī)交互設(shè)計(jì)如圖2所示。
圖2 人機(jī)交互設(shè)計(jì)
控制節(jié)點(diǎn)Place的運(yùn)動(dòng)僅限于父親節(jié)點(diǎn)下的其他兄弟節(jié)點(diǎn),應(yīng)當(dāng)對(duì)前閥部分每個(gè)模型的從屬關(guān)系與父子節(jié)點(diǎn)進(jìn)行設(shè)定,例如,在拆卸拉檔部件的步驟中,運(yùn)動(dòng)節(jié)點(diǎn)應(yīng)在拉檔部件模型下,確保拉檔、拉檔軸和拉檔釘一起運(yùn)動(dòng)。為了確保前一個(gè)零部件裝配完成之后下一個(gè)零部件才能進(jìn)行裝配,必須讓前一個(gè)零部件Place節(jié)點(diǎn)EvenOut接口的OnRunFalse與后一個(gè)零部件Place節(jié)點(diǎn)EvenIn接口的SetRun連接。利用Script節(jié)點(diǎn)支持的VBScript或JavaScript編寫相關(guān)功能函數(shù),實(shí)現(xiàn)對(duì)復(fù)雜運(yùn)動(dòng)的控制。
以前閥部分自動(dòng)拆卸為例:1)進(jìn)行Place節(jié)點(diǎn)分配,將GUIControls中2D Text2節(jié)點(diǎn)拖到Scene之下,將Agent Nodes中Place節(jié)點(diǎn)拖到qianfabufen.SLDASM中離合輪部件、柄頭部件、離合桿簧、離合輪部件、拉檔部件、離合桿壓片、定檔簧和撥針輪零部件之下,為了對(duì)部件進(jìn)行進(jìn)一步的觀察,那么要對(duì)部件再次進(jìn)行拆卸,需要將Place節(jié)點(diǎn)拖到相應(yīng)零件之下,例如,分別將Place節(jié)點(diǎn)拖到拉檔軸和拉檔釘零件之下。2)對(duì)Place節(jié)點(diǎn)中Movement、Time to move、Type和Active進(jìn)行設(shè)置,Movement是對(duì)零部件沿x、y、z三維坐標(biāo)方向上的移動(dòng)距離和沿x、y、z三個(gè)軸旋轉(zhuǎn)的角度進(jìn)行設(shè)置,Time to move是對(duì)零部件的移動(dòng)速度或旋轉(zhuǎn)速度進(jìn)行設(shè)置,Type是對(duì)零部件相對(duì)或絕對(duì)的形式進(jìn)行設(shè)置,本研究選擇相對(duì)移動(dòng)或旋轉(zhuǎn)形式,Active是對(duì)進(jìn)入程序模擬時(shí)是否自動(dòng)激活進(jìn)行選擇,本研究選擇不激活。3)設(shè)置邏輯關(guān)系及串聯(lián)和并聯(lián)方式的選擇,將2D Text2節(jié)點(diǎn)和Place節(jié)點(diǎn)拖到Routes:Simulation窗口中進(jìn)行邏輯關(guān)系設(shè)置,有以下兩種:一種是串聯(lián)方式的選擇,為了確保前一個(gè)零部件裝配完成之后下一個(gè)零部件才能進(jìn)行裝配,必須讓前一個(gè)零部件Place節(jié)點(diǎn)輸出三角形OnRunFalse與后一個(gè)零部件Place節(jié)點(diǎn)輸入圓形SetRun連接,例如,離合桿壓片拆卸之后才能拆卸拉檔部件,則離合桿壓片Place節(jié)點(diǎn)輸出三角形的OnRunFalse應(yīng)當(dāng)與拉檔部件Place節(jié)點(diǎn)輸入圓形SetRun連接。一種是并聯(lián)方式的選擇,拉檔部件移動(dòng)之后需要對(duì)拉檔和拉檔釘進(jìn)行觀察,需要將拉檔和拉檔釘并聯(lián)在拉檔部件之后,即拉檔部件Place節(jié)點(diǎn)輸出的三角形OnRunFalse應(yīng)當(dāng)分別與拉檔和拉檔釘零件Place節(jié)點(diǎn)輸入的圓形SetRun連接。前閥部分自動(dòng)拆卸各節(jié)點(diǎn)邏輯關(guān)系設(shè)置如圖3所示。
圖3 邏輯關(guān)系設(shè)置
機(jī)械手表的裝配,不僅有一個(gè)順序問(wèn)題,而且每一步裝配都必須按照裝配工藝規(guī)定操作,來(lái)保證各部分的裝配質(zhì)量,以便通過(guò)綜合檢驗(yàn)和調(diào)試來(lái)確保手表走時(shí)準(zhǔn)確、工作可靠,且外觀符合要求。為了有助于培養(yǎng)學(xué)習(xí)者科學(xué)的操作方法,既提高產(chǎn)量又保證質(zhì)量,按照裝配規(guī)劃序列設(shè)置ToolTip節(jié)點(diǎn),當(dāng)鼠標(biāo)移動(dòng)到相應(yīng)零部件表面并單擊時(shí),則自動(dòng)顯示對(duì)該零部件的裝配工藝要求。設(shè)置ClickSensor屬性,勾選Change cursor when clickable方框,在手動(dòng)裝配過(guò)程中當(dāng)鼠標(biāo)移動(dòng)到相應(yīng)零部件位置時(shí)鼠標(biāo)顯示方式發(fā)生改變,提示可以裝配此零部件,并從Click button中Left、Middle、Right和None之間選擇一種。設(shè)置Place節(jié)點(diǎn)各項(xiàng)參數(shù)與自動(dòng)裝配中保持一致。設(shè)置ToolTip屬性,在Enter ToolTip Text below方框中輸入相應(yīng)零部件的名稱、裝配要求和注意事項(xiàng)等裝配工藝要求,勾選Change cursor when clickable方框和Click to display方框,當(dāng)鼠標(biāo)移動(dòng)到相應(yīng)零部件表面并單擊時(shí)則顯示對(duì)該零部件的裝配工藝要求,在Routes:Simulation窗口中進(jìn)行手動(dòng)裝配工藝模塊邏輯關(guān)系設(shè)置。
在虛擬環(huán)境中,碰撞檢測(cè)是機(jī)械手表虛擬裝配仿真系統(tǒng)研究的一個(gè)非常重要的關(guān)鍵環(huán)節(jié)。為使零部件在模擬過(guò)程更加符合真實(shí)情況,模型間不能發(fā)生穿透現(xiàn)象,在虛擬裝配系統(tǒng)中添加實(shí)時(shí)碰撞檢測(cè)。在EON Studio中,利用CollisionObject節(jié)點(diǎn),將需要進(jìn)行碰撞檢測(cè)的零部件Copy as Link到CollisionObject節(jié)點(diǎn)下,并利用ColorCode3DMaterial和DirectSound節(jié)點(diǎn),設(shè)置相關(guān)屬性,當(dāng)碰撞發(fā)生時(shí)產(chǎn)生顏色變化和真實(shí)聲音。
以Visual Basic為開(kāi)發(fā)工具集成機(jī)械手表虛擬裝配仿真系統(tǒng)時(shí),EON Studio提供了一個(gè)EonX的Active控件,EonX 控件具有一系列的屬性、方法、事件,當(dāng)把EonX控件添加到VB應(yīng)用程序中時(shí),其封裝的類也同時(shí)添加上了,這時(shí)就可以方便地調(diào)用該類的成員函數(shù)與VB應(yīng)用程序進(jìn)行通信了[7-8]。例如,針對(duì)本研究集成系統(tǒng)而言,首先將EonX控件添加到VB應(yīng)用程序中,然后利用VB語(yǔ)言開(kāi)發(fā)環(huán)境中的Label控件、TextBox控件和CommandButton控件,設(shè)置好控件的屬性之后,編寫程序代碼來(lái)實(shí)現(xiàn)各控件的響應(yīng)事件系統(tǒng)登錄程序設(shè)計(jì),最后利用AxControl2類的成員函數(shù)完成應(yīng)用程序?qū)ON模擬程序的加載,達(dá)到實(shí)時(shí)交互的目的。
系統(tǒng)登錄程序的功能是實(shí)現(xiàn)當(dāng)用戶在用戶名和密碼都輸入正確時(shí),點(diǎn)擊登錄按鈕就可以進(jìn)入機(jī)械手表裝配系統(tǒng)主界面,若輸入錯(cuò)誤則提示聯(lián)系程序員,點(diǎn)擊取消按鈕則退出本系統(tǒng)的學(xué)習(xí)。
系統(tǒng)主界面設(shè)計(jì)部分程序如圖4所示,其程序的功能是實(shí)現(xiàn)當(dāng)用戶點(diǎn)擊機(jī)械手表前閥部分、能源裝置、傳動(dòng)輪系、擒縱機(jī)構(gòu)、振動(dòng)系統(tǒng)、附加機(jī)構(gòu)、整只機(jī)芯和成表總裝共八大部分任一部分的按鈕時(shí),系統(tǒng)就會(huì)完成對(duì)EON Studio模擬程序的加載。例如,點(diǎn)擊前閥部分,就會(huì)加載前閥部分自動(dòng)裝配模塊、自動(dòng)拆卸模塊、運(yùn)動(dòng)仿真模塊、裝配工藝模塊和點(diǎn)油要求模塊共五大模塊的內(nèi)容。本系統(tǒng)八大部分主界面設(shè)計(jì)如圖5所示。
圖4 系統(tǒng)主界面設(shè)計(jì)程序
圖5 系統(tǒng)主界面
本研究利用SolidWorks三維建模軟件對(duì)機(jī)械手表前閥部分、能源裝置、傳動(dòng)輪系、擒縱機(jī)構(gòu)、振動(dòng)系統(tǒng)、附加機(jī)構(gòu)、整只機(jī)芯和成表總裝八大部分零部件進(jìn)行建模、渲染和規(guī)劃,基于EON Studio虛擬仿真平臺(tái)對(duì)機(jī)械手表每一部分的自動(dòng)裝配、自動(dòng)拆卸、運(yùn)動(dòng)仿真、裝配工藝和點(diǎn)油要求五個(gè)模塊進(jìn)行虛擬裝配的人機(jī)交互設(shè)計(jì)、運(yùn)動(dòng)控制和碰撞檢測(cè),運(yùn)用Visual Basic設(shè)計(jì)系統(tǒng)登錄界面和主界面,實(shí)現(xiàn)Visual Basic應(yīng)用程序?qū)ON Studio模擬程序的加載,集成機(jī)械手表八大組成部分,構(gòu)成一個(gè)完整的機(jī)械手表虛擬裝配仿真系統(tǒng)。該機(jī)械手表虛擬裝配系統(tǒng)對(duì)促進(jìn)實(shí)際機(jī)械手表裝配與維修培訓(xùn)或教學(xué)具有重要的指導(dǎo)意義,降低了培訓(xùn)或教學(xué)成本,大幅提高了學(xué)員學(xué)習(xí)效率,切實(shí)提高了裝配與維修質(zhì)量,極大地降低了手表零部件損壞程度。