杜寶江,余冬平,程建建
(上海理工大學 虛擬制造技術研究院,上海200093)
目前針對大型機械設備虛擬裝配系統構建環節主要存在以下3個缺陷[1]:①產品的虛擬裝配系統的開發周期長;②每個階段的構建環節對操作人員的技術水平要求高;③裝配系統是針對指定產品進行設計的,其它產品因與之培訓內容不同,程序則需重新編寫,這樣裝配系統不具有擴展性和重用性。針對上述在虛擬裝配系統構建環節中存在的缺陷,本文設計了虛擬裝配程序可視化平臺VRMLPlat-Form,該平臺實現了虛擬裝配動作可視化及對應虛擬裝配程序的快速自動生成。
在機械設備裝配體模型構建完成的基礎上,從三維CAD 軟件中將待裝配的零部件數字模型導入到VRML 中,運用VRML語言,手工編寫動畫腳本。簡單的VRML 模型裝配運動利用基于事件的交互原理[3],主要依靠方位插補器 節 點 (OrientationInterpolator)、時 間 傳 感 器 節 點(TimeSensor)、位置插補器節點 (PositionInterpolator)等和ROUTE語句來實現關鍵幀動畫。
這種方法是對三維CAD 軟件進行二次開發,設計一個動畫導出插件。在待裝配零部件模型構建完成基礎上,直接在三維CAD 軟件中制作裝配動畫,最后通過動畫導出插件將裝配動畫導出為VRML程序代碼檔。
其中,手工編寫VRML動畫腳本的方法,需要制作人員要有很深的VRML編程基礎,而且代碼的編寫有很多重復性的工作,再者代碼編寫同動畫演示并不同步,不能立即判定編寫的動畫代碼是否正確。對于三維CAD 動畫導出插件,就避免了代碼編寫的重復性工作,對應用人員的技術要求也不是很高。但是在三維CAD 軟件中,因為模型構建時會有約束關系,機構的運行動畫比較好做,而裝配動畫有時很難實現。基于上述問題,我們提出了可快速生成可視化虛擬裝配程序平臺-VRMLPlatform 的設計與實現。
本文設計的虛擬裝配程序可視化生成平臺也是建立在模型構建完成基礎上,通過C#.NET 編寫窗體應用程序,在此窗體中要求能夠實時顯示裝配體的狀態關系并可實現零件選擇。當選中某個零件時,通過窗體中的參數設置模塊,如零件的起始位置,作用時間等,就可以在后臺VRML 程序代碼檔中添加對應的裝配動作語句。這樣便實現了虛擬裝配動作的可視化以及對應程序的快速自動生成。見表1可看出本文提出的虛擬裝配程序可視化平臺對操作人員的技術要求不高、便于裝配仿真動畫的制作,并能夠實現可視化編輯。
VRMLPlatform 的工作流程如圖1所示。
圖1 VRMLPlatform 的工作流程
本文目的是實現虛擬裝配動作VRML 程序檔的快速生成,而VRML檔是一種代碼檔,在實現快速生成的過程中主要用到代碼自動生成技術[4]。
VRMLPlatform 平臺操作流程同要實現的主要后臺功能的對應關系見表2。
表2 工作流程與后臺功能對應
對于節點分組的后臺運算是要操作VRML 代碼,添加Transform 節點,將模型代碼放入Children中,實現模型的按組分配。在VRMLPlatform 平臺中,其它如節點重命名、刪除和新建,其后臺實現同節點分組是一致的,也是對VRML檔中的Transform 節點進行操作。
VRMLPlatform 中對模型拾取的方式應該有兩種:點擊模型樹節點和直接點擊場景中的模型,在拾取完成后,模型顯示區的對應模型會成高亮顯示。
點擊模型樹節點來拾取模型的方式,其后臺實現方式是:讀取目錄樹被選擇的節點名稱,并找到VRML 代碼中該模型材質節點的引用,同時修改其顏色屬性為紅色,即高亮顯示;在場景中拾取模型[6]的方式,其后臺運行方式是:通過函數computeRayHit(here,there)從點擊點發送射線,讀取射線相交的模型節點引用,從而找到其材質引用,修改其顏色屬性。圖2為齒輪被拾取時的狀態。
圖2 齒輪被拾取狀態
由VRMLPlatform 快速生成的裝配動畫從宏觀意義上可以分為兩類:運動動畫和狀態動畫。運動動畫又包括直線運動和旋轉運動,狀態動畫包括閃爍、透明度變化和顏色變化動畫。
在完成裝配動畫的參數設置后,需要將每步虛擬裝配動作的定義參數和上述選擇的模型儲存在某個信息載體中。可以關系型數據庫SQL Server作為記錄裝配動作參數的存儲工具,設計參數表dbo.AnimationTable,存儲每一步裝配動作的所有參數數據[7]。
虛擬裝配最重要的是對裝配路徑進行設置[9],在本文路徑設置采用 “用戶引導”的拆卸方式,即通過識別模型零部件之間的裝配關系,引導模型進行對應的坐標變換,從整個裝配體拆卸開來,并記錄拆卸的關鍵位置信息,其逆過程就是裝配過程。以下重點介紹平移和旋轉運動路徑的參數設置方法:
(1)直接輸入法:對于平移運動,只需手動輸入平移方向和起始位置就定義好其運動路徑,對于旋轉運動手動輸入旋轉中心Center和方向Normal就可定義好旋轉運動的旋轉軸。
(2)場景中獲取法:通過場景中獲取的方法來設置平移動作的運動路徑,采取兩點式和法矢量式。兩點式是通過從場景中拾取兩點來確定運動路徑,法矢量式是通過拾取場景中的一個零件表面,此表面的法矢量即為運動路徑。
通過場景中獲取的方法來設置旋轉動作的旋轉軸。通過在場景中拾取3個點,那么旋轉運動的模型將沿過這三點的外接圓的圓心切垂直于過這三點的平面的軸進行旋轉。
虛擬裝配仿真動作檔是一段VRML 程序代碼,所以記錄裝配的VRML 程序的生成是VRMLPlatform 的最終目標。VRML代碼的生成即將對應數據庫中記錄虛擬裝配參數轉換為相應的VRML代碼,實現步驟如下。
3.4.1 分析VRML代碼的結構
要生成的VRML代碼包括4部分:模型節點代碼、動畫原型節點PROTO、動畫代碼和動畫連續播放腳本代碼。模型節點代碼中包含了分組信息,動畫原型節點是一個自定義的節點AnimationFrame,此自定義節點相當于面向編程中的函數定義,AnimationFrame中定義了動畫的參數和內部的邏輯運算關系。
3.4.2 生成動畫代碼
生成動畫代碼即是根據數據庫SQL Server中各行數據生成實例化的PROTO 節點代碼。每一步動作都對應一個AnimationFrame節點的實例化即該步裝配動作的VRML程序代碼。
3.4.3 生成虛擬裝配動作連貫展示程序代碼
通過VRMLPlatform 制作虛擬裝配仿真動畫時,動畫是按照裝配步驟來制作的,每一步的裝配動作對應著一步動畫,在每步動作之間需要實現連貫展示,這就需要生成動作連貫展示程序,動作連貫展示程序代碼是根據每一步裝配動作引用的節點以及每步裝配動作的持續時間來生成的,實現方法是基于模板驅動的代碼自動生成技術,其具體腳本程序代碼模板如下所示。
上述程序代碼中time1、Time1和Node9_STEP 為可變參數,其它的程序段都是固定的。在每兩步動畫之間添加此段程序代碼,就可以實現這兩步虛擬裝配動作的連貫展示。
3.4.4 VRML程序代碼整合
將模型節點代碼、動畫原型節點PROTO、動畫代碼、動畫連續播放腳本代碼整合到一個VRML 檔中。具體的整合方法是:通過函數creatVRML ()新建一個VRML文檔,然后通過參數賦值的方式將模型節點代碼、動畫原型節點PROTO、動畫代碼、動畫連續播放腳本代碼分別賦給4個文本參數,將這4個文本參數內容寫入新建的VRML文檔。
根據圖1 本平臺界面規劃流程圖。首先需對VRMLPlatform 平臺要實現的功能進行枚舉,找出每個功能的界面觸發方式,根據功能和界面觸發方式相似的原則,確定同一功能模塊區,依據上述原則,見表3。
表3 VRMLPlatForm 功能統計分類
根據表3中對VRMLPlatform 界面規劃的研究,本文設計了如圖3所示的用戶界面。
圖3 VRMLPlatform 用戶界面
圖4 模型導入VRMLPlatForm
本文列舉兩個矩形聯結器的移動裝配動作仿真制作,演示虛擬裝配程序可視化平臺-VRMLPlatform 的操作方法。選擇 “文 件”下 的 “新 建VRML 動 畫”,然 后 “導 入VRML文件”,然后點擊屏幕左下方的按鈕 “將場景樹更新至瀏覽器”,則在系統中場景樹和模型展示區都已有模型信息,如圖4所示。
在場景樹中選擇做虛擬裝配動作的模型,右鍵 “新建動畫”,則可在參數設置模塊設置相關參數,本例要求模型沿Y 軸做直線運動。其參數設置界面如圖5所示。
圖5 參數設置界面
在模型動畫參數設置時,包括平移、旋轉、閃爍、透明度和顏色等動畫的參數設置,每設置完一次的參數,需要保存該步的動畫設置,如圖6所示。
圖6 動畫設置保存界面
點擊VRMLPlatform 界面左下方 “生成代碼”,則在后臺對應的VRML 文件中生成了該步裝配動作代碼。用BS Contact打開此VRML 文件,則可瀏覽裝配動畫。圖7 為平移裝配的最終生成。
圖7 平移裝配的最終生成
以上便演示實現了VRMLPlatForm 虛擬裝配程序可視化的過程。若手動編寫該平移裝配動作程序,過程較繁瑣。該平臺應用于柴油機泵組虛擬裝配培訓系統開發中 (圖8),運行穩定,交互培訓能力強,數據處理速度快,大大縮短了開發周期、避免了技術人力的浪費,驗證了本文所設計平臺的正確性和必要性。
圖8 柴油機泵組虛擬裝配培訓系統開發界面
在虛擬制造領域,VRMLPlatform 實現了虛擬裝配可視化及程序的自動快速生成,提高了虛擬裝配制作效率,尤其對復雜的裝配過程更凸顯其高效性和便捷性。很大程度上解決了虛擬裝配培訓系統開發周期長的問題。實現了裝配動作可視化編輯,操作簡單,對操作人員的技術水平要求低,設置參數的同時,觀看裝配動作演示效果,避免了手工匯編程序的繁瑣。由于VRMLPlatform 是基于模板的代碼自動生成技術,可將裝配動作設計為包含所有運動改變和狀態改變的模板,而且其擴展性強,只需要更改后臺數據庫中定義的裝配參數和所選擇模型引用,就可制作其它機械產品的虛擬裝配動作仿真并快速生成其程序代碼。因此,VRMLPlatform 平臺在開發虛擬裝配培訓領域具有普遍適用性。
[1]DU Baojiang.The virtual manufacturing technology [M].Shanghai:Science and Technology Press,2007:22-26 (in Chinese).[杜寶江.虛擬制造技術 [M].上海:科學技術出版社,2007:22-26.]
[2]YU Weiling,WAN Jun.Development and applied research of virtual manufacturing technology(VMT)[J].Manufacturing Automation,2008,30 (2):1-4 (in Chinese).[于衛靈,萬軍.虛擬制造技術 (VMT)的發展與應用研究 [J].制造業自動化,2008,30 (2):1-4.]
[3]HE Xinhua,WANG Xiaoning.The research of mechanical product virtual assembly technology based on VRML [J].Journal of Mechanical Engineering & Automation,2011,40(5):31-33 (in Chinese).[何新華,王孝寧.基于VRML的機械產品虛擬裝配技術研究 [J].機械工程與自動化,2011,40 (5):31-33.]
[4]GUAN Taiyang.Reaseach of automatic code generation technology based on the template [D].Chengdu:Institute of Computer,University of Electronic Science and Technology of China,2007 (in Chinese).[管太陽.基于模板的自動代碼生成技術的研究 [D].成都:電子科技大學計算機學院,2007.]
[5]TAN Fei.Design and implementation of automatic testing tools based on code generation technology [D].Wuhan:Institute of Computer,Huazhong University of Science and Technology,2010 (in Chinese).[談飛.基于代碼生成技術的自動化測試工具的設計與實現 [D].武漢:華中科技大學計算機學院,2010.]
[6]GUO Yanxia,HOU Tongpu,DU Yuanyuan.Picking up the entities in the three-dimensional scene based on DirectX technology [J].Journal of Liaoning University of Petroleum Chemical Industry,2009,29 (3):77-81 (in Chinese). [郭艷霞,候彤璞,杜園園.基于DirectX 的三維場景實體的拾?。跩].遼寧石油化工大學學報,2009,29 (3):77-81.]
[7]BAI Yang.Exploration about the stored procedure of SQL SERVER [J].Knowledge and Technology of Computer,2011 (12):8769-8776 (in Chinese). [白 楊.探 究SQL SERVER 存 儲 過 程 [J].電 腦 知 識 與 技 術2011 (12):8769-8776.]
[8]CHEN Yanchun,LIANG Li.The method and realization of importing large data into database[J].Skills and Maintenance for Computer Programming,2012,11 (1):20-23 (in Chinese). [陳嚴純,梁立.大數據導入數據庫的方法與實現[J].電腦編程技巧與維護,2012,11 (1):20-23.]
[9]LI Mimi.The visualized technological research of product assembly sequence based on WEB [D].Xi’an:Institute of Aviation,Northwestern Polytechnical University,2007 (in Chinese).[李咪咪.基于WEB的產品裝配序列可視化技術研究 [D].西安:西北工業大學航空學院,2007.]
[10]HU Qili.The automatic generating technological research of virtual training system for machinery equipment[D].Shanghai:College of Mechanical, University of Shanghai for Science and Technology,2012 (in Chinese).[胡其立.機械裝備虛擬培訓系統自動生成技術研究 [D].上海:上海理工大學機械學院,2012.]
[11]HUANG Qiguang,HAN Xie.The research and development of the VRML visual editor [J].Computer Engineering and Design,2008,29 (5):1296-1298 (in Chinese). [黃柒光,韓燮.VRML可視化編輯器的研究與開發 [J].計算機工程與設計,2008,29 (5):1296-1298.]
[12]SHAO Xiaoliang,NIE Li.The implementating method of the assembly simulation based on Division Mockup software [J].Mechanical Design and Manufacturing,2007 (3):54-56 (in Chinese). [邵曉東,聶力.基于Division Mockup裝配仿真的實現方法 [J].機械設計與制造,2007 (3):54-56.]
[13]PENG Gaoliang,CHEN Guangfeng,LIU Xinhua.modular fixture assembly model for virtual assembly design [J].Journal of Donghua University(English Edition),2009,26 (1):10-15.
[14]CHEN Jingping.Design and application of visualization of assembly process [C]//Proceedings of IEEE 9th International Conference on Computer-Aided Industrial Design &Conceptual Design,2008.