基于Quest3D可视化管理系统的研究与实现

2016-11-30 02:07:58冯桂珍张增强池建斌邢海军
图学学报 2016年1期
关键词:可视化预警数据库

冯桂珍, 张增强, 池建斌, 邢海军

(石家庄铁道大学机械工程学院,河北 石家庄 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数据库实现了该工程重点项目的可视化管理,并通过服务监听机制实现异地数据的同步与更新。该系统直观展示了工程施工进度,同时对施工进度及存在的质量、环保、安全等问题进行可视化预警,并提供针对重大事件处理的应急预案库,从而使管理者随时随地通过系统对工程进度、施工中出现的工期拖延、材料供应不足及存在的质量、安全、环保等问题了如指掌;还可通过应急预案库为处理重大质量、安全隐患、环保等问题提供参考方案,从而使应急事件预警处于可视监控状态,为施工管理提供了一个可视化的异地在线管理平台。

1 Quest3D简介

目前,虚拟现实开发平台很多,如Virtual tools、VRP、Java3D[6]、VRML[7]、Cult3D[8]、Quest3D等,这些技术各有其优越性。Quest3D是荷兰Act-3D公司基于DirectX开发的三维交互开发平台,可提供丰富具有特定逻辑功能模块的Channel。在Quest3D 的Channel编辑器中,通过连接和设置相关参数,可建构出复杂功能的VR交互系统,且系统的扩展性强[9]。Quest3D程序开发的一般流程如图1所示。

图1 Cult3D程序开发流程

2 工程项目简介

该工程主要包括新区主干道、东西区安置房等,新区主干道工程为连接该市新老城区的一条最重要交通干道,全长11.62 km,包括路基、桥梁、涵洞等。系统以新区主干道的重大代表性工程为主要研究对象,即某特大桥和某隧道工程。特大桥分左右两幅,桥梁左幅桥跨长1 110 m,右幅桥跨长1 330 m。隧道为双线隧道,左线长1 314.67 m,右线长1 320 m,属长隧道。

3 系统总体框架设计

系统采用B/S 结构构建,客户端提供可视化交互控制、查询及管理界面,服务器端进行数据维护与管理,数据库存储于服务器端。系统以工程数据库为支撑,以Quest3D为可视化构建工具,实现工程项目可视化管理平台,系统框架结构如图2所示。系统以三维虚拟场景直观呈现工程项目,且通过鼠标和键盘进行交互操作和场景漫游,可视化展示工程进度、质量、材料、安全、环保、成本等信息。系统的主要模块功能说明如下:

(1) 工程可视化模块。该模块包括工程进度可视化和工程预警可视化两部分。

①进度可视化以工程进度数据库中的数据为依据,实时展示工程进度,从而实现基于数据库的项目进度动态可视化监控,实现工程进度3D可视化。

②工程预警可视化实现对施工进度、材料供应及存在的质量、环保、安全等问题进行可视化预警,如进度超前或滞后,是否存在质量、环保、安全隐患等问题。可提醒管理者出现问题的工程部位、可能原因、应采取的措施等,当出现重大质量或安全等应急事件预警时,可以查询应急预案库,为解决问题提供参考。

(2) 场景漫游与交互操作模块。该模块实现基于鼠标和键盘完成与三维模型的交互操作,以及在三维场景中的漫游。

(3) 工程信息查询模块。该模块通过信息查询平台实现对各种工程信息的查询、统计等,如查询指定标段的工程进度、材料供应、存在的质量或安全问题等,同时可以生成查询结果表单。

(4) 五控目标动态分析模块。该模块负责动态统计每月五控目标完成情况及表单生成,五控目标动态分析包括施工工期造价动态分析、施工动态EV分析及质量、安全、环保的动态分析。施工工期造价动态分析和施工动态EV分析运用已获价值方法计算统计完成,质量、安全和环保的动态分析通过统计法和打分法完成。

(5) 数据维护与管理模块。该模块用于对各标段的工程进度、材料供应、质量、安全、环保及成本等信息的维护和管理,并上传到服务器端,完成数据的更新与同步。

(6) 服务监听模块。负责异地数据的同步更新与远程通讯。不同标段、不同部门负责各自的项目数据维护管理和更新。为了避免大量异地数据实时同步更新而导致系统繁忙,系统通过服务监听机制,分时段或定期进行数据更新,具体更新时间由浏览者决定。

图2 系统结构框图

(7) 数据库模块。该模块实现对工程进度、材料供应、资金到位及存在的质量、安全、环保等信息的管理,工程数据库及相应数据表利用 MySQL完成,数据库包括工程项目、材料、成本、质量、安全、环保6个数据表,各数据表都包含标段、项目编号作为关联字段。同时,建立了应急预案库,为工程应急事件处理提供参考。

4 系统实现的关键技术

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 工程信息查询界面

5 结 论

系统利用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

猜你喜欢
可视化预警数据库
基于CiteSpace的足三里穴研究可视化分析
基于Power BI的油田注水运行动态分析与可视化展示
云南化工(2021年8期)2021-12-21 06:37:54
基于CGAL和OpenGL的海底地形三维可视化
法国发布高温预警 严阵以待备战“史上最热周”
今日农业(2019年12期)2019-08-13 00:50:02
“融评”:党媒评论的可视化创新
传媒评论(2019年4期)2019-07-13 05:49:14
园林有害生物预警与可持续控制
现代园艺(2017年22期)2018-01-19 05:07:01
数据库
财经(2017年2期)2017-03-10 14:35:35
数据库
财经(2016年15期)2016-06-03 07:38:02
数据库
财经(2016年3期)2016-03-07 07:44:46
数据库
财经(2016年6期)2016-02-24 07:41:51