利用ObjectARX开发小型地下管线信息管理系统
2010-04-19杨小兵
杨小兵
(黄山市城市测绘院,安徽黄山 245000)
利用ObjectARX开发小型地下管线信息管理系统
杨小兵∗
(黄山市城市测绘院,安徽黄山 245000)
着重阐述了地下管线信息管理系统的开发技巧与关键技术,为小城镇或开发区内实现地下管线信息系统管理,提供了一个经济实惠的解决方案,也为单独开发软件提供了个案与思路。
AutoCAD;ObjectARX;VC++;组词典;扩展数据XData;实体;窨井;地理信息系统
1 概 述
本文将要阐述的一个问题就是如何利用Object-ARX工具包在VC++平台下开发一个基于AutoCAD软件的小型地下管线信息管理系统。为什么说只能在小城镇区域内呢,因为此次开发的软件数据库是基于AutoCAD图形数据库的,它与Oracle、SQL Server、Access数据库不能比,前者只是硬性将窨井属性数据写入CAD图形实体中,缺乏对数据的有效组织与管理,而后者本身就可以对数据进行有效的组织与管理,比如表格合并、排序、索引与筛选等;但Oracle、SQL Server、Access数据库对软硬件系统要求都比较高,安装、使用、开发对操作者来讲都不是一件容易的事,专业性要求特别强,对一般用户来讲不经济实惠。而如果使用AutoCAD连接到其他数据库比如Access,当然这样可以减小DWG文件的容量,但要学会Access数据库编程也不是一件简单容易的事,对一般用户而言要设置外部数据连接也不是一件简单容易的事。而Auto-CAD已经是大众化软件,可以说只要有一点AutoCAD的使用经验就可以操作和维护这个数据库管理软件,并且成本低,为小城镇提供了一个既可以解决急需问题、又不必花太多人力财力的方案。
地下管线信息管理系统,其实就是一个关于地下管线的地理信息管理系统,总的说来就是专业数据库管理系统,因此,不外乎要实现管线点属性数据的输入、修改、查询、输出这几个功能。本系统实现的基本原理是,利用ObjectARX开发基于AutoCAD平台本身的数据库管理软件。众所周知,AutoCAD每个图形实体本身带有扩展数据XData,我们只要将管线点的属性写入XData中就可以实现数据库数据的输入工作,而通过读取管线点的XData数据即可实现查询功能。查询与写入的反向操作则完成了数据库的修改与维护工作。通过查询结果生成管线属性信息表和文档及纵断面图等,就可以实现管线信息的显示与输出工作。
2 系统实现原理
实现本软件各功能模块的关键技术有:VC++面向对象编程、对话框设计编程、XData数据存储与读取、图形实体组词典操作技术、基本二进制或ASCII码文件写入与读取操作,当然还要熟练掌握VC++语言与ObjectARX开发工具包。下面将对软件各模块编程进行详细解释。
2.1 建立符合窨井属性信息的数据结构
首先利用面向对象语言VC++新建一个窨井信息类,利用这个类来存取窨井属性信息,那么窨井一般具有:名称、序号、井深、井盖高程、平面位置(X、Y)、材质、流向井(序号、口径)、所在道路、所属部门、建设年份等等,这些属性中只有井深、井盖高程和平面位置是数字形式,而其他属性都可以字符形式表示,即这个属性信息类只要有字符串型CString与浮点型Double变量就可以对窨井属性信息进行操作,下面是示例。
2.2 窨井属性信息读取与修改操作接口
对视窗Windows操作系统来说,输入和修改窨井属性数据的接口,当然要利用这种所见即所得编程理念,就是设计一个对话框来与用户交流。本系统设计了一个样式(如图1),基本上都涵盖了属性信息的输入要求,如果还有其他信息,只需在对话框上增加所需控件即可。将对话框各控件与新建的wellinfo类的相应变量对应,就可以实现控件与类变量的数据交换。
图1 窨井属性信息输入界面
2.3 窨井属性信息读取与修改
实现了输入与修改接口后,应当就是解决如何将这些信息存储在窨井图形实体中。众所周知,CAD的独立符号,像窨井、电杆、水井、路灯等等,可采用块参照来管理和存储的,只需要对窨井符号实体进行操作。下面示例说明如何从实体的扩展数据XData中读取窨井属性数据和将窨井属性数据写入到实体的扩展数据XData中。
2.4 查询与居中显示
本系统所用的查询工作,即是遍历当前图形数据库中的所有图形元素,查询条件是用户通过对话框(如图2)给定的。
图2 查询条件设置
图3 查询结果显示图
通过读出窨井符号中应用程序“wyarx“的扩展数据,与用户所给条件一一对比,如果存在,则将所查找到的窨井居中显示(如图3)。
2.5 显示
本系统显示只是常规属性显示,比如窨井名称、序号、井盖高程、井底高程,这样给管线查询与设计者一个一目了然的读图方式。如图3这些常规属性显示图形采用了AutoCAD组词典管理,将这些显示属性的图形元素都编在一个组里。
2.6 输出
本系统使用ASCII文件作为输出形式,当然也可以表格形式或直接输出成Word文档及其他数据库中,如表1所示。
系统输出表格 表1
3 结 语
本文所阐述的关于小型地下管线信息系统管理软件涵盖了一般地理信息系统软件的共性,只是当前是用于地下管线这一块,限于篇幅所列举的实现原理与原代码有限,但都是实现本系统的关键算法与方法,可以通过示例,举一反三,更好地完善本系统的其他专业模块,使其能更好完成其他部门的工作,比如给水公司,电信公司,电力公司,当地建设规划部门等等。当然,在显示与输出这一块,还可以加进三维图形显示,输出到更高级数据库以及加入版本信息,为以后升数据结构类作准备,实现更好的、更全面的地理信息管理。
[1]孙江宏,丁立伟,米洁.AutoCAD ObjectARX开发工具及应用[M].北京:清华大学出版社,1999
[2]二代龙震工作室.AutoCAD ARX函数库查询辞典[M].北京:中国铁道出版社,2003
[3]地下管线普查技术规程(试行稿).2007
[4]陈述彭,鲁学军,周成虎编.地理信息系统导论.北京:科学出版社,2000
Using ObjectARX Developing Minitype Underground Pipeline Information Management System
Yang XiaoBing
(Huangshan Urban Surveying and Mapping Institude,Huangshan 245000,China)
Only knows the VC++and ObjectARX development tools for developing this system,and learning or using this system is so easy,and does not need other administrators,So this case is cheaper to achievement of the undergroup pipeline information management system for a minitype town or urban.This file illuminates the key technology and key skills for developing this system,and providing ideas and a case for individual development software.
AutoCAD;ObjectARX;VC++;Group Dictionary;Extended Data;Entity;Well;GIS
1672-8262(2010)04-74-03
P208
B
2009—11—30
杨小兵(1977—),男,工程师,主要从事城市测绘、城市GIS建设与管理、数字化航摄及GIS应用软件编程等工作。