馮桂珍, 張增強, 池建斌, 邢海軍
(石家莊鐵道大學機械工程學院,河北 石家莊 050043)
基于Quest3D可視化管理系統的研究與實現
馮桂珍, 張增強, 池建斌, 邢海軍
(石家莊鐵道大學機械工程學院,河北 石家莊 050043)
Quest3D是一種基于DirectX開發的三維交互技術平臺,具有廣泛的應用空間。在研究Quest3D構建交互式三維虛擬場景的過程、方法和相關技術的基礎上,以某工程項目為例,以VC++和Quest3D為平臺,結合MySQL數據庫技術,開發了一個工程項目可視化管理系統,通過服務監聽機制實現數據的異地同步和更新。用戶在虛擬場景中通過鼠標或鍵盤進行交互操作和漫游,查詢工程信息,可視化預警存在問題工程及應急事件處理預案的查詢等,為實際工程施工和管理提供了一種可視化的解決方案。
可視化管理系統;Quest3D;VC++;MySQL
項目管理在施工過程中具有重要意義,而傳統的文字、圖表等管理方式,在項目管理中存在諸多不便利性。隨著計算機技術的發展,可視化管理成為研究熱點,其研究所使用的技術和手段不盡相同,如李濤[1]利用VB與虛擬現實平臺(virtual reality platform,VRP)結合實現了橋梁施工管理的可視化;魏欣海[2]利用VB與AutoCAD模型的數據傳遞模擬工程進度的狀態變化;郭強等[3]運用科學知識圖譜方法和 CiteSpace軟件分析工程管理學科研究動態的可視化;吳全立等[4]采用J2EE及Oracle數據庫實現了盾構隧道工程可視化安全風險管理軟件的開發;譚章祿等[5]利用數據挖掘、可視化技術等構建了礦井安全可視化管理模型和礦井安全可視化管理平臺結構模型。
虛擬現實技術的出現為工程管理提供了新的模式,3D可視化技術應用于工程管理,克服了傳統文字、表格等管理模式不形象直觀的缺點,實現了項目管理的直觀化、可視化。鑒于此,本系統以某工程項目為研究對象,采用Quest3D虛擬現實交互技術,結合VC++及MySQL數據庫實現了該工程重點項目的可視化管理,并通過服務監聽機制實現異地數據的同步與更新。該系統直觀展示了工程施工進度,同時對施工進度及存在的質量、環保、安全等問題進行可視化預警,并提供針對重大事件處理的應急預案庫,從而使管理者隨時隨地通過系統對工程進度、施工中出現的工期拖延、材料供應不足及存在的質量、安全、環保等問題了如指掌;還可通過應急預案庫為處理重大質量、安全隱患、環保等問題提供參考方案,從而使應急事件預警處于可視監控狀態,為施工管理提供了一個可視化的異地在線管理平臺。
目前,虛擬現實開發平臺很多,如Virtual tools、VRP、Java3D[6]、VRML[7]、Cult3D[8]、Quest3D等,這些技術各有其優越性。Quest3D是荷蘭Act-3D公司基于DirectX開發的三維交互開發平臺,可提供豐富具有特定邏輯功能模塊的Channel。在Quest3D 的Channel編輯器中,通過連接和設置相關參數,可建構出復雜功能的VR交互系統,且系統的擴展性強[9]。Quest3D程序開發的一般流程如圖1所示。

圖1 Cult3D程序開發流程
該工程主要包括新區主干道、東西區安置房等,新區主干道工程為連接該市新老城區的一條最重要交通干道,全長11.62 km,包括路基、橋梁、涵洞等。系統以新區主干道的重大代表性工程為主要研究對象,即某特大橋和某隧道工程。特大橋分左右兩幅,橋梁左幅橋跨長1 110 m,右幅橋跨長1 330 m。隧道為雙線隧道,左線長1 314.67 m,右線長1 320 m,屬長隧道。
系統采用B/S 結構構建,客戶端提供可視化交互控制、查詢及管理界面,服務器端進行數據維護與管理,數據庫存儲于服務器端。系統以工程數據庫為支撐,以Quest3D為可視化構建工具,實現工程項目可視化管理平臺,系統框架結構如圖2所示。系統以三維虛擬場景直觀呈現工程項目,且通過鼠標和鍵盤進行交互操作和場景漫游,可視化展示工程進度、質量、材料、安全、環保、成本等信息。系統的主要模塊功能說明如下:
(1) 工程可視化模塊。該模塊包括工程進度可視化和工程預警可視化兩部分。
①進度可視化以工程進度數據庫中的數據為依據,實時展示工程進度,從而實現基于數據庫的項目進度動態可視化監控,實現工程進度3D可視化。
②工程預警可視化實現對施工進度、材料供應及存在的質量、環保、安全等問題進行可視化預警,如進度超前或滯后,是否存在質量、環保、安全隱患等問題。可提醒管理者出現問題的工程部位、可能原因、應采取的措施等,當出現重大質量或安全等應急事件預警時,可以查詢應急預案庫,為解決問題提供參考。
(2) 場景漫游與交互操作模塊。該模塊實現基于鼠標和鍵盤完成與三維模型的交互操作,以及在三維場景中的漫游。
(3) 工程信息查詢模塊。該模塊通過信息查詢平臺實現對各種工程信息的查詢、統計等,如查詢指定標段的工程進度、材料供應、存在的質量或安全問題等,同時可以生成查詢結果表單。
(4) 五控目標動態分析模塊。該模塊負責動態統計每月五控目標完成情況及表單生成,五控目標動態分析包括施工工期造價動態分析、施工動態EV分析及質量、安全、環保的動態分析。施工工期造價動態分析和施工動態EV分析運用已獲價值方法計算統計完成,質量、安全和環保的動態分析通過統計法和打分法完成。
(5) 數據維護與管理模塊。該模塊用于對各標段的工程進度、材料供應、質量、安全、環保及成本等信息的維護和管理,并上傳到服務器端,完成數據的更新與同步。
(6) 服務監聽模塊。負責異地數據的同步更新與遠程通訊。不同標段、不同部門負責各自的項目數據維護管理和更新。為了避免大量異地數據實時同步更新而導致系統繁忙,系統通過服務監聽機制,分時段或定期進行數據更新,具體更新時間由瀏覽者決定。

圖2 系統結構框圖
(7) 數據庫模塊。該模塊實現對工程進度、材料供應、資金到位及存在的質量、安全、環保等信息的管理,工程數據庫及相應數據表利用 MySQL完成,數據庫包括工程項目、材料、成本、質量、安全、環保6個數據表,各數據表都包含標段、項目編號作為關聯字段。同時,建立了應急預案庫,為工程應急事件處理提供參考。
4.1模型創建
系統所涉及的模型包括橋梁和隧道工程模型、樹木綠化、地形等,其中橋梁和隧道工程模型是系統的主要控制對象,與數據庫之間有一一對應關系。
4.1.1各類模型的建立方法
(1) 橋梁和隧道工程模型是將準確的AutoCAD圖經過簡化后導入3DMax,通過拉伸等方法完成。如橋墩、橋臺、T梁、橋面等橋梁模型以及開挖步驟模型、初期支護、仰拱、二襯等隧道模型。3DMax中完成的模型如圖3所示。

圖3 3DMax建模效果圖
(2) 地形創建方法:把項目平面圖的邊界經緯度信息標記在Google earth上,按照從上至下的順序在該軟件上畫出等距直線,用該軟件查看高程信息功能,獲取該等距直線的地形剖面,利用貼圖的方式將3DMax獲取的剖面貼到與Google earth相同的等距平面上,再用3DMax中的曲線繪制工具描出地形剖面,并將繪制好的地形剖面線附加在一起,之后修改器建模中的曲面命令形成地形網格,同時把Google earth中的衛星圖貼到該網格上,從而得到真實的項目地形圖和周邊地理信息。完成后的地形效果如圖4所示。

圖4 3DMax完成的地形效果圖
4.1.2建模注意事項
(1) 刪除不必要的線和面,線不能導入到Quest3D,且對模型進行平滑操作。
(2) 不要創建距離很近或相互疊加的面,否則Quest3D會出現相互穿透的閃爍現象。
(3) 為防止法線錯位,所有物體執行法線重置操作。
(4) 貼圖最好為2n尺寸,如128×256,但不要大于1024×1024,否則影響瀏覽速度。
4.1.3模型導出
模型建立后,可導出為“.X”或cgr格式文件。系統采用cgr格式文件。導出時,需將獨立控制的模型分布導出,以便在Quest3D中控制和操作對象,如將左幅橋梁的第37根橋墩分別導出37個cgr模型。導出后的cgr文件均導入到Quest3D中,完成虛擬場景的模型創建。
4.2Quest3D與MySQL數據連接
二者連接的具體方法和步驟如下:
(1) 連接。Quest3D通過 DB Source和 DB DriverMySQL實現與MySQL數據庫的連接,在DB DriverMySQL中設置數據庫連接的地址、數據庫名、用戶名、密碼等,完成數據庫連接。
(2) 查詢。使用DB Query查詢數據,設置數據源以及查詢條件,如“SELECT * FROM projectdata”,實現從projectdata表中查詢所有數據。
(3) 數據存取。通過DB Value和DB Text實現數字型和字符型數據的存儲。為避免數據的頻繁讀取,系統通過 For Loop將數據庫的數據存儲在Array channel中,完成數據存儲。
數據庫連接及數據提取如圖5所示。及信息提示,預警實現方式如下:
(1) 對存在問題的工程紅色閃爍預警,鼠標點擊彈出問題信息;
(2) 在建工程黃色顯示,鼠標點擊顯示進度信息等;
(3) 完工工程正常顯示,點擊實時顯示完工信息等。
預警的實現如圖6所示,系統通過ChannelSwitch控制Material的 Diffuse字段,利用Expression Value作為ChannelSwitch的條件設置。當工程在建時,條件值為1,選擇黃色顯示;當工程某一環節出現問題時,條件值為3,選擇紅色閃爍顯示,工程正常時,以默認方式顯示。

圖5 數據庫連接及數據提取

圖6 可視化預警實現
4.3可視化預警及信息提示
三維虛擬模型根據工程實際進度與計劃進度實時對工程項目進行預警提醒,具體包括顏色預警
工程信息查詢是通過 Lua channel實現。Lua channel可加載或卸載通道、進行復雜的計算等。Lua可以調用CallChannel和GetValue兩個函數,分別用于完成通道的調用及值的返回。如圖7所示,系統通過Lua腳本實現在虛擬場景中的信息提示。
4.4數據查詢與維護
系統的數據維護與查詢是利用VC++實現,包括數據庫的連接、數據查詢及相應交互界面設計等。其中數據庫連接和數據表打開的主要代碼如下:
m_sql.Open(null,false,false,"ODBC;DSN=mdb;" //連接數據庫
CString sqlstr="select * from bridge";//設置查詢條件
CBridgeD *m_pSet;//創建數據記錄指針
m_pSet=new CBridgeD(&((CQiaochuxunApp*)AfxGet App())->m_db); //為記錄指針賦值
if(!m_pSet->Open(AFX_DB_USE_DEFAULT_TYPE,sql str))//判斷是否打開bridge表
AfxMessageBox("數據表打開失敗!"); //打開失敗提示
工程信息查詢包括工程狀態、材料供應、質量問題等,以進度狀態查詢為例說明數據庫信息查詢的實現,以下是部分代碼:
void OnSearch() { //從工程狀態下拉列表中選擇要查詢的工程狀態
switch(m_sel.GetCurSel()) {
case 0: DispList (0,bd);break; //查詢未開工工程
case 1: DispList (1,bd);break; //查詢在建工程
case 2: DispList (2,bd);break; //查詢已完工程
case 3: DispList (3,bd);break;//查詢工期拖延工程}……}
voidDispList (int zt, int bd) {//根據工程狀態代碼及所屬標段篩選和顯示查詢結果
m_list.DeleteAllItems();m_pSet->MoveFirst(); //清空數據列表,并將指針移到首記錄處
while(!m_pSet->IsEOF())//循環遍歷整個數據表
{// 判斷是否滿足要查詢的標段和工程狀態代碼
if(m_pSet->m_xmid= =bd&&m_pSet->m_zth= =zt)
{//將符合條件的記錄逐條插入到數據列表中
itoa(m_pSet->m_id,buf,10); m_list.InsertItem
(i,buf);//插入序號
m_list.SetItemText(i,1,m_pSet->m_jingdu); //插入項目名稱
str.Format("%0.1f",atof(m_pSet->m_wch)/atof(m_pSet->m_jh wch)*100);
m_list.SetItemText(i,3,str);//計算并插入進度完成量
m_list.SetItemText(i,5,m_pSet->m_zhuangtai);//插入工程狀態
……//插入其他項目
i++; }
m_pSet->MoveNext(); }}
圖8為系統維護主界面。圖9示工程查詢主界面,顯示內容為第二標段的工程信息。

圖8 數據維護界面

圖9 工程信息查詢界面
系統利用Quest3D、VC++、MySQL實現了某工程的可視化管理系統,具有數據異地同步、預警可視化、虛擬場景漫游、信息直觀查詢等。圖 10為三維虛擬可視化場景,通過上部的交互按鈕,實時對某工程或標段進行查看,有助于工程的全局管理與進度掌控。該系統在實際工程施工中得到了應用,且效果良好。同時,對其他工程管理項目具有借鑒作用。

圖10 三維可視化虛擬場景
[1] 李濤. 橋梁施工管理可視化系統研究[D]. 阜新: 遼寧工程技術大學, 2011.
[2] 魏欣海. 沉管隧道工程可視化進度管理的研究[D]. 北京: 清華大學, 2007.
[3] 郭強, 陳栩婕, 秦江濤. 工程管理學科中研究動態的可視化分析[J]. 上海交通大學學報, 2013, 35(3): 209-214.
[4] 吳全立, 王夢恕, 駱建軍. 盾構隧道工程可視化安全風險管理軟件的研究與開發[J]. 現代隧道技術, 2013, 50(4): 15-23.
[5] 譚章祿, 史后波, 方毅芳, 等. 礦井安全可視化管理平臺研究[J]. 煤礦機械, 2012, 33(7): 284-286.
[6] 馮桂珍, 池建斌, 王大鳴, 等. 采用Java3D構建虛擬校園技術的研究[J]. 工程圖學學報, 2009, 30(6): 186-190.
[7] 馮桂珍, 池建斌, 王晨, 等. VRML模型創建工具中可視化交互操作的設計和實現[J]. 系統仿真學報, 2006, 18(2): 387-390.
[8] 馮桂珍, 池建斌. 模具虛擬實驗系統的開發[J]. 河北省科學院學報, 2011, 28(2): 21-25.
[9] 路朝龍. Quest3D從入門到精通[M]. 北京: 中國鐵道出版社, 2012: 1-269.
Research and Implementation of Visual Management System Based on Quest3D
Feng Guizhen,Zhang Zengqiang,Chi Jianbin,Xing Haijun
(Mechanical Engineering Institute, Shijiazhuang Tiedao University, Shijiazhuang Hebei 050043, China)
As a platform of 3D interactive technology based on DirectX, Quest3D has very good application space. By taking a project as an example and structuring with VC++, Quest3D and MySQL, a visual management system based on studying the process, method and related technology of constructing 3D interactive virtual scene with Quest3D is developed, which achieves data synchronization and updates through service monitoring mechanism. In the virtual engineering projection scene, users can interactively manipulate and freely walk with mouse or keyboard, search projection message, visually warn existed problems and the preplan of emergency event handling and so on, provideing visual solution for the engineering construction and project management.
visual management system; Quest3D; VC++; MySQL
TP 391.9
10.11996/JG.j.2095-302X.2016010115
A
2095-302X(2016)01-0115-05
2015-01-13;定稿日期:2015-06-13
河北省教育廳項目(QN20131130);河北省高校重點學科建設項目
馮桂珍(1978–),女,內蒙古商都人,副教授,碩士。主要研究方向為虛擬現實及CAD技術。E-mail:fgz789618@163.com