学习啦>论文大全>毕业论文>理学论文>统计学>

土地整理规划设计中多义线长度值快速统计研究

若木分享

  摘要 在AutoCAD的平台上,利用其嵌入式语言VBA的函数并结合Excel获取AutoCAD绘制多义线长度值的算法,完成多义线自动统计到Excel中的二次开发。该研究用于土地整理项目规划设计中新修排水沟长度值的自动统计,减少了烦琐的工作量,为进一步实现土地整理项目规划设计的自动化提供了可能。

  关键词 多义线 长度 统计 AutoCAD VBA

  中图分类号:TP39 文献标识码:A

  近年以来,随着人口不断增加与城镇建设用地的扩展,使得土地尤其是耕地相对短缺的问题日益突出,土地开发整理作为补充耕地的主要途径,是保住“耕地18亿亩红线”(1.2亿hm2)和国家粮食安全的主要措施。随着我国土地整理工作在全国深入开展,国家在土地整理中投入大量的财力、人力、物力,如何提高土地整理中工程量计算的效率以,是目前需要研究的问题之一。目前,在土地整理规划设计中所用的绘图软件主要是AutoCAD系列软件。其中在进行排水沟规划设计时,通常是在规划后逐条点击其属性统计长度值。如果更改规划要素,则需要再次重新统计,工作效率低、且易出错。土地整理项目规划设计是一项涉及面广、内容复杂的过程,各类地物信息影响土地整理规划设计的各个方面。如何有效快速的在规划设计中确定规划要素的基础数据,如长度值等,本研究进行了一些探索。本文介绍如何利用AutoCAD嵌入式语言VBA(Visual Bacic for Applications)并结合Excel进行二次开发,完成在土地整理项目规划设计中各新修排水沟多义线长度值的自动统计。

  1 程序设计思路流程及数据间相互关系

  1.1 程序设计思路及流程

  AutoCAD是目前工程图形中使用最广泛的计算机处理软件。在土地整理项目规划设计中,AutoCAD中用得最多的线是多义线(polyline),并以此来表示土地整理项目规划设计专题图中的大多数规划要素,如排水沟,农村道路等。在Auto-CAD中某一图层统计出各多义线的长度,首先确定统计图层中的对象i(i表示多义线的条数),然后把图层中各i长度值i直接自动写入到Excel单元格中,从而使土地整理规划设计进一步自动化。开发的程序流程见图1所示。

  1.2 数据间相互关系

  多义线属性数据与Excel单元格数据彼此存在着一定的联系。每一条规划的排水沟多义线的长度值都在Excle单元格中对应着一个相应属性数据记录,两者之间通过对Auto,CADVBA二次开发函数接口调用属性数据建立内在联系,可以使规划人员任意显示检查排水沟多义线的长度值。两者之间通过二次开发程序,把它们联系在一起。

  2 应用VBA技术进行AutoCAD二次开发

  根据以上的二次开发基本思想和数据结构,本研究开发的土地整理项目规划设计制图应用程序,可以完成与排水沟类似的规划制图多义线长度自动统计,为土地整理项目规划设计中的工程预算提供科学、准确的基础数据,并利于土地整理规划设计人员分析规划的正确性、合理性,及时的调整规划设计方案,直至最后形成最佳的土地整理规划设计方案和规划专题图。

  2.1 VBA在AutoCAD中的开发特点

  AutoCAD VBA允许VBA环境与AutoCAD同时运行,并通过ActiveXAutomation接口对AutoCAD进行编程控制,对于非专业开发人员在程序语言选择上相对其它开发高级语言,如:C、C++等,VBA更易学易掌握,可构成多种使用的专业软包,0能快速实现特定功能。

  2.2 程序代码的完成

  在AutoCADVBA开发环境中的ThisDrawing模块,首先在用户窗体中的新修排水沟中添加一些按钮事件,属性栏更改名称为工程统计等按钮名称,在其按钮事件中加入相关程序代码,并运行其代码,如图2程序运行界面。相关代码较长,本文中省略。

  3 程序应用

  AutoCAD环境中,实现多义线自动统计的方法简单描述(1)创建图层名为新修排水沟;(2)创建多条新修排水沟的多义线段:(3)点击工程统计按钮(见图2);(4)根据点击按钮提示保存Excel的统计值的文件路径,打开Excel所得各编号排水沟长度值(见图3)。图2程序运行界面中的蓝色虚线为拟新修排水沟,旁边文字为其编号,每个编号对应图3运行统计结果Excel中的编号长度值,实现其自动统计多义线长度值的功能。

  4 结语

  基于AutoCAD的自动统计程序,是用其内嵌的开发语VBA,结合Excel进行二次开发,其优点是:在土地整理项目规划设计中所涉及到的规划要素为多义线时,能方便快捷的统计出同一图层中的长度值,为工程造价预算提供科学,准确的基础数据;其程序占用内存少,运行速度快,简单实用,符合在土地整理项目规划设计中的相关要求。

    54678