APP下载

基于CASS属性的DWG数据快速分层方法

2016-12-07刘虎

城市勘测 2016年1期
关键词:工具栏数据表图层

刘虎

(蚌埠市勘测设计研究院,安徽蚌埠 233000)

基于CASS属性的DWG数据快速分层方法

刘虎∗

(蚌埠市勘测设计研究院,安徽蚌埠 233000)

按照分层需求编制数据分层规则,并存储于数据库中。采用VBA语言编写分层程序,遍历DWG数据对象,读取其CASS码,检索分层规则确定所属图层,并将对象移动到目标图层中,实现对DWG数据的快速分层。此方法避免人工直接操作实体对象,效率和准确性较高。尤其在对大面积地形图进行分层时,相对人工分层,优势明显。

AutoCAD;扩展属性;CASS;快速分层

1 前 言

AutoCAD是一种以二维制图为主,具有部分三维功能的工程设计软件。友好的界面设置,鼠标与命令相结合的操作模式,强大的工程设计功能及丰富的二次开发接口,使其在工程测绘制图上应用广泛,成为地形图矢量制图与数据整理的首要软件之一。CASS码是南方数码公司结合地理信息分类码编制的一套适用于AutoCAD地形图制图的地类分类码,包括所有常见的地理要素。CASS码依托于AutoCAD的DWG图形数据库,以扩展属性的方式为DWG数据图元数据追加CASS属性,用以区分各种不同地物要素,实现一个地物或图元对应一条数据记录。VBA是AutoCAD自带的一种二次开发环境,采用VB语法,能够编程实现对AutoCAD图元要素的各种复杂操作[1]。

CAD数据对象有个很大的不足之处,就是对象可以很容易的移动到其他图层,基本没有限制,方便数据编辑的同时,也因为误操作导致数据分层极易出错。本文尝试避开人工操作实体对象,通过编制分层文件和计算机程序,以CASS码为检索目标,实现对测绘数据的快速分层,满足各种定制需求。

2 AutoCAD扩展属性与CASS码

AutoCAD扩展属性(XDATA)是向AutoCAD中的几何实体添加自定义数据,可以处理包括字符串、实数、整数和实体句柄等许多信息,但要求的数据量不超过16K。AutoCAD可以与管理基本几何实体数据一样管理XDATA,但必须采用程序操作。扩展的对象数据是在对象数据记录中以标示码为前导的一个项。在一个图元中,可以加入扩展数据大小为:16 383字节[2,3]。

南方CASS是一种在地形图绘制中应用广泛的制图软件,其通过编制一整套的CASS码,以扩展属性的方式添加到CAD图形中,实现地形要素的编码与制图。每个图元由唯一CASS码标示,在一个图形要素中,每一行扩展属性包括两部分内容。以一个建筑要素为例,其CASS码包括三个部分:第一行是标示字符,表明这个是南方CASS扩展属性,如“1001:SOUTH”;第二行标示要素类,也就是要素分类码,标示此要素的具体分类,如砖房屋“1000:141111”;第三行为补充性字段,如楼层数“1040:7”,如图1所示。本文通过检索CASS码中的地类码,来实现对图形要素的快速分层[4,5]。

图1 CASS属性

3 技术流程

为了能够重复利用已经编制好的数据分层规则,本文以数据库的形式存储基于CASS码的数据分层规则。程序遍历图中所有图元,读取CASS码,或者将已公开的CASS码提前录入数据库中。然后按照分层要求,建立对应的图层,将所属的CASS码归入对应的图层规则中,完成数据分层规则的初步编制。分层规则编制完成后,由程序遍历所有图形要素,读取CASS码,检索分层规则确定其对应图层,将地形要素移入对应图层中。对未按照规则分层,遗漏的图形要素,检测CASS码,确定是规则遗漏还是其他原因,修正分层规则,重新分层,以达到将所需要的地物要素完全按照需要进行分层定制,得到目标AutoCAD文件,技术流程如图2所示。

图2 数据分层流程图

4 程序实现

本文所述数据分层方法用数据库存储分层规则,以CAD扩展工具栏的方式实现相关操作命令。

数据库采用Access的mdb数据库,包括存储CASS码和分层规则两大部分,其中存储CASS码的数据表在前期用Access定制,存储分层规则的数据表用程序实现。

CAD扩展工具栏通过在CAD命令行数据“cui”命令,打开“自定义用户界面”,通过建立自定义的菜单栏和菜单项,实现本文所需工具栏的定制,并设置相应的程序入口。如图3所示,自定义lh.cui为自定义菜单文件,其“图层管理”工具栏中的“分层设置”用来对分层规则的编制,“数据分层”用来实现数据分层命令。选中单个菜单项,可对相关命令内容进行设置。

图3 自定义分层工具栏

上述分层规则数据表的创建及其他数据分层的实现,采用VBA程序设计工具,编写相应的程序代码与工具栏命令相对应。首先,采用ADO数据库方法,与存储数据库建立连接,实现数据表的建立,并将编制的分层规则存入对应的数据表中。然后采用CAD二次开发中的GetXData方法,读取地物要素的CASS码,并按分层规则将要素归入对应图层中。

程序开发完成后,CAD命令行输入“menuload”加载定制的工具栏文件(cui文件),输入命令“appload”加载程序文件(DVB文件),完成相关程序集的加载。设置好后,CAD每次启动将自动加载cui和dvb程序文件。新奥燃气的分层规则如图4所示,共5个图层:道路、建筑、图框、植被和水系,每个图层包括制定的CASS码。通过检索DWG中实体对象CASS码,快速完成分层规则的编制。项目覆盖面积约200 km2,从定制分层规则到分层完成,用时仅约30 min,且分层无错漏,并剔除了多余数据。

图4 分层图层设置

5 结 论

本文阐述的数据分层方法,通过在新奥燃气制图等多个项目中使用,相比人工分层明显提高了工作效率,且避免了人工分层时的要素遗漏与错层等常见错误。以数据库存储分层规则,实现了一次定制分层规则,多次应用,节省了前期所需时间。采用cui文件与DVB文件相结合的方式,既解决了DVB文件无法编译,每次应用需加载的问题,又实现了菜单制作与程序分离,易于后续的修改与维护。本程序在实现分层的同时,亦可实现对特定地物要素的提取,只需将需要的地物要素按照图层设置好,就可将相关要素提取到对应图层中。但是在编制分层规则上,有些不足,效率上有待提高。

[1] 王建设,时东玉,褚喆.AutoCAD二次开发解决二调中数据采集中的问题[J].现代测绘,2008(6).

[2] 黄杏元,马劲松,汤勤.地理信息系统概论[M].北京:高等教育出版社,2001.

[3] 钱业宏,花向红.AutoCAD扩展数据在地形图建库中的应用[J].城市勘测,2008(1).

[4] 崔先国,张明波.AutoCAD中扩展图元数据的应用[J].矿山测量,1999(8).

[5] 周蓉,杜晓荣,张丽华等.图形系统二次开发环境的研究与实现[J].合肥工业大学学报,2004.

The DWG Data Fast Hierarchical Method Based on Attributes of the CASS

Liu Hu

(Bengbu Design and Research Institute of Geotechnical Investigation and Surveying,Bengbu 233000,China)

Data compiled in accordance with the rules of hierarchical stratification requirements and stored in the database.Layered program using VBA language,traversing DWG data object,read its CASS code,retrieve hierarchical rules to determine belongs layer,and the object is moved to the target layer,to achieve rapid stratification of DWG data.This method avoids artificial entity objects directly operated,high efficiency and accuracy.Especially when a large area topographic map stratified,relatively artificial stratification,have obvious advantages.

AutoCAD;extend property;CASS;quickly hierarchical

1672-8262(2016)01-129-03

P208.1

B

∗2015—09—29

刘虎(1983—),男,硕士,工程师,主要从事GIS数据处理、地理信息工程开发、航空摄影测量等工作。

猜你喜欢

工具栏数据表图层
“玩转”西沃白板
湖北省新冠肺炎疫情数据表(2.26-3.25)
湖北省新冠肺炎疫情数据表
基于列控工程数据表建立线路拓扑关系的研究
解密照片合成利器图层混合模式
巧用混合图层 制作抽象动感森林
跟我学添加真实的光照效果
图表
设计一种带工具栏和留言功能的记事本
国外建筑CAD图层标准发展现状与研究