土地开发整理制图中图块自动填色方法研究

2022-10-14

在日常的土地开发整理现状图、竣工测量中, 现状图、竣工图是以全彩色方式成图, 其中图内涉及很多地块, 而这些地块是由不同的地类组成, 需按不同地类填色统计, 在Auto CAD环境下, 常规方法是采用人机对话进行手工编辑, 这样做工作量大, 而且在编辑过程中难免有编辑错误, 造成地类填色统计不准确, 工作效率低下。因此笔者在实际的工作中逐步摸索, 总结了一点经验, 通过基于Visual Basic、Auto CAD VBA等Active X控件技术, 对Auto CAD进行二次开发, 编程创建和操纵Auto CAD对象实现按地类填色要求自动完成地块色彩填充功能。经实践测试该方法将比原有的工作方式减轻了60%的工作量, 减轻了繁重的内业编辑, 缩短了成图时间, 在工作中起到了事半功倍的效果, 提高了工作效率。

1 设计思路

现在Auto CAD和MAPGIS已成为测绘制图单位的首选软件, 因其图形编辑操作方便的特点, 一直受到用户的青睐。在Auto CAD环境下要实现地块批量的进行填色统计, 关键在于各地块封闭性, 输出地块信息文件, 使各地块信息中包含有块号、地类代码、拐点二维坐标值等信息。

利用Visual Basic6.0、Auto CAD VBA等Active X控件技术来对Auto CAD进行二次开发, 在Visual Basic 6.0中可以方便的调用Auto CAD2004, 利用Auto CAD2004中Ad d Light Weight Polyline () 函数功能来画各地块的填充边界, 只需将上述形成数据预处理文件转换成Add Light Weight Polyline () 函数所要求的数据格式, 实现填充边界的绘制。用Add Hatch (Pattern Type, pattern Name, b Associativity) 函数功能创建填充对象。其中Pattern Type为填充类型一般设为0;patte rn Name为填充图案名称;b Associativity为逻辑变量一般设为ture。利用Add Hatch的属性功能函数Append Outer Loop () 获取地块边界封闭对象到填充对象的外边界。

根据有关土地开发整理地类填色 (R、G、B) 要求, 在程序中通过条件判断, 用循环语句使各地块地类代码等于规定的地类代码时, 取得各地块的 (R、G、B) 值, 完成颜色的对应关系。用Acad Application.Get Interfa ce Object ("Auto CAD.Ac Cm Color.16") 功能来增加填充对象颜色;用Call color.Set RG B (R, G, B) 语句来调用Auto CAD2004的真彩色, 其中 (R, G, B) 为每一地块对应的 (R, G, B) 值。编写Add Hatchobject.True Color=color语句来改成按要求的颜色号, 如此循环以上过程, 即可对项目区内的地块完成批量自动化的填色。

2 数据结构

2.1 地块数据准备

在Auto CAD环境下, 采用开思 (SCS) 或者南方 (CASS) 等软件, 根据外业编辑后的图形, 检查图内的各地块封闭性, 如地块之间田土坎没完全封闭, 可用Pline线进行连接封闭, 将地块完全封闭后的CAD图形图层文件转成DXF文件。通过MAPGIS6.5软件数据转换功能, 将DXF文件转成线文件 (*.wl) , 将线文件转为弧段进行拓扑检查建立地块区文件 (*.wp) , 采用自动标注区块号功能, 对各地块进行计算机自动标注地块号, 保留地块号点文件 (*.wt) 。通过区属性输出可形成各地块面积统计表 (*XLS) , 在该文件中有地块号、面积等信息只需在根据图形完成地块对应的地类代码编辑列信息内容。方便后面程序调用, 对应地块填充颜色 (R、G、B) 值。

将上面的地块区文件 (*.wp) 和地块号点文件 (*.wt) 分别输出成DXF文件, 在Auto CAD中进行叠加并放在一个图层中此时在Auto CAD图形中, 各地块必然是封闭的, 而且地块号又置于其中, 借助MAPGIS6.5软件强大的功能, 完成地块封闭线的提取, 不需在Auto CAD中用Pline线再一块块的划封闭线。在开思 (SCS) 或者南方 (CASS) 软件中都有数据输出功能, 将Auto CAD中进行叠加并放在一个图层的图形信息输出文本文件。此文件中包含有每一地块的地块号和每一封闭地块的各拐点二维坐标值相对应。

2.2 填充数据结构

利用Auto CAD2004中Add Light Weigh Polyline () 函数功能, 对各地块的填充边界数据格式进行组织, 方便函数读入数据。

3 程序实现方法

在土地开发整理中, 国土资源部颁布相应地类填色 (R、G、B) 参数值, 在项目现状图、竣工图中必须引用。在Visual Basic6.0中, 利用Command控件功能, 在控件内写入代码Open Common Dialog1.File Name For I n p u t A s#3, 按行读入数据t e m p 1.t x t文件的数据。实现在Visual Basic6.0中连接Auto CAD2004程序, 达到批量画地块图形的功能。

最终完成地块按地类代码的填色 (R、G、B) 参数值, 实现批量化填充颜色的要求。

4 结语

在日常工作中, 因地块较碎, 地类较多, 如采用手工颜色填充又慢, 而且难免有填色与标准色偏差的地方。通过利用程序可以实现方便、快捷、准确的填色工作, 同时还缩短了成图周期, 提高了工作效率。通过大量土地开发整理项目生产使用情况来看, 利用该程序操作简单, 数据处理准确, 结果可靠, 完全满足规程的技术要求。

在Auto CAD环境下实现封闭区域内的自动填色方法很多, 可采用Lisp、Visual Lisp语言编写。但是利用VB6.0、Auto CAD VBA可视化编程语言编写起来灵活, 方便程序源代码的封装, 可以很好的与办公自动化软件访问, 实现数据的输入输出。真正的达到数据、图形、表册的一致性, 提高了工作效率。以上只是笔者在工作中摸索的一点体会, 现与读者分享, 如有不妥之处, 尽请指正。

摘要:本文探讨了基于VisualBasic、AutoCAD VBA等ActiveX控件技术的自动填图方法, 相信对从事相关工作的同行能有所裨益。

关键词:AutoCAD VBA,二次开发,自动填色,工作效率

参考文献

[1] 杨莉.VisualBasic程序设计教程[M].北京:中国水利水电出版社, 2002.

[2] 杨广旋, 杨浩, 孙静.AutoCAD定制与应用程序设计[M].北京:科学出版社, 2005.

[3] 张帆, 郑立揩, 王华杰.AutoCAD VBA开发教程[M].北京:清华大学出版社, 2004, 1.

[4] 国土资源部土地整理中心.土地整理工程设计[M].中国人事出版社.

本文来自 99学术网(www.99xueshu.com),转载请保留网址和出处

上一篇:抓住学生习作心理提高学生习作能力下一篇:新形势下成油品销售企业竞争策略浅析

热门文章

土地开发