基于AutoCAD VBA的公路施工横断面图的绘制和土方量计算

2010-04-19 07:00纪凯
城市勘测 2010年4期
关键词:平面坐标横断面土方

纪凯

(安徽交通职业技术学院土木系,安徽合肥 230051)

基于AutoCAD VBA的公路施工横断面图的绘制和土方量计算

纪凯∗

(安徽交通职业技术学院土木系,安徽合肥 230051)

路基断面图和土石方量是施工单位工程计量的重要依据,本文针对施工特点,阐述了在AutoCAD平台下如何使用VBA开发适合施工单位的横断面图绘制和土方计算程序的一些问题。开发的程序使用方便,计算精度高。

施工;横断面;土方量;AutoCAD

1 概 述

目前我国交通建设发展迅猛,特别是随着公路交通和高速公路的增加,旧有公路不断拓宽和改建,在公路施工过程中,由于一些客观的原因,设计文件中的路基土石方的数量误差较大,特别是地形起伏变化大的地方更是如此。究其原因:一是设计部门在勘测时,由于现场复杂,特别是杂草丛生、树木较多通视条件差的地方,测量误差大;二是有些地方无法精确详细测量,如遇河塘;三是断面测量间距受到限制,不可能很小,否则对于设计单位来说,勘测工作量很大。因此各施工单位进入现场后,都要对各自施工的路段的路基土石方进行复核。主要包括:一是公路线路原地面复测;二是绘制横断面图和土石方量计算。这两项工作量都较大。绘制横断面图和土石方量计算在设计单位目前全部采用计算机软件自动完成,而在施工单位主要采用在方格厘米纸上用人工方法完成或在AutoCAD用Command命令绘制。劳动强度大,效率差,精度低,而横断面图和土石方量是业主对施工单位路基工程计量的重要依据。本文讨论结合施工的特点,开发适合施工单位使用的路基施工横断面图绘制和土方计算的程序。

2 公路施工测量断面的特点

2.1 原地表

(1)同一桩号的断面比勘测设计阶段准确。这是由于施工单位进场后投入人力对原地表进行了处理,如清表、砍伐植物等,为精确测量提供了条件。

(2)断面间距缩短。我们知道,土方量计算的精度与断面的间距有很大的关系,间距越小,精度越高。由于每个施工单位施工的标段里程有限,因此,施工单位为了提高土方量的精度,横断面的间距都较小,在土方成本大的地方,甚至5 m测量一个断面。

2.2 标准断面

(1)对于复测后的断面与原设计单位勘测的相差不大的情况,对施工单位来说,标准断面都是由设计图纸确定,施工单位不得变更。(而设计阶段的标准断面可以自由确定)

(2)对于复测后的断面与原设计单位勘测的相差大的情况,标准断面如果不能满足要求,应重新设计。

3 AutoCAD VBA编程介绍

Visual Basic for Application(VBA)是Microsoft面向最终用户的应用软件编程语言。它最早出现于Microsoft的Excel和Project中,如今VBA已成为VB和所有Office产品的组件。常用的绘图软件AutoCAD也已支持VBA作为二次开发工具。

VBA最大特点和最大优点是利用面向对象(OOP)的ActiveX Automation技术,使语言的引擎在技术上与开发环境分离。它的功能在很大程度上依赖于它的客户显露的Automation接口。同时,由于VBA是基于ActiveX Automation技术,它可以使用任何Automation技术的应用程序共同工作。

基于AutoCAD的VBA应用程序就是高级程序语言的计算功能与AutoCAD的绘图功能结合,使用VBA程序语句来控制对AutoCAD图形的操作。VBA作为一个集成的开发环境,它提供了高质量的用户化编程能力,能够使AutoCAD数据与其他的VBA应用程序,如Microsoft Excel软件直接共享,实现无缝连接,交换数据非常方便。

VBA的两种重要的基础是宏和集合对象。宏是执行特定操作的一系列命令,可以只是完成任务的按钮记录,也可以是复杂的命令,例如,AutoLISP,DIESEL和ActiveX编程代码等的组合。宏的定义方式与VB中的过程(SUB)的定义是一致的,一般用来实现某一些特定的功能,也可作为VBA的启动过程。在Auto-CAD的“宏”对话框的宏列表中,仅会显示ThisDrawing或者标准模块的宏。ThisDrawing模块中无法创建全局变量,可以放置AutoCAD事件处理的代码,而标准模块则与之相反。

进入VBA的编程环境可以有两种方法:第一种方法是在AutoCAD中,选择“工具”→“宏”→“VISUAL BASIC编辑器”。第二种方法是在AutoCAD的命令中输入命令“VBAIDE”。

4 公路横断面绘制的方法

为了在AutoCAD中绘制公路横断面图需要解决3个问题:第一是从Excel中读取断面数据的问题;第二是坐标转换的问题,也即是把断面的坐标转换成Auto-CAD的地图坐标;第三是设计横断面的坡度线与原地面线段求交点的问题。

4.1 从Excel读取数据的方法

在Microsoft Excel中,与表对应的对象是工作表(Sheet或Worksheet),与每一个表格方格对应的对象是单元格区域(range),它可以仅包括一个单元格(cell),也可以由多个单元格合并而成。工作表对象中的 cells属性,在单元格的选择方面可以达到与range相同的效果。它是以行(row)和列(col)作为参数的,对于行和列的选择可以采用变量的形式。

在AutoCAD中,没有与表对应的对象,但可以根据表中前后桩号定义水平距离,根据地面高程定义垂直距离,将表中数据理解为线条与文字对象的集合。这样,通过读取Microsoft Excel文件中的最小对象-单元格区域[cells(i,,j)]的主要信息,利用VBA建立AutoCAD与Excel的通信,然后在AutoCAD文件里指定的图层、位置画线条,书写文字。通过循环,遍历所有单元格区域[cells(i,,j)],边读边写,最终完成纵断面地面线的绘制及桩号的书写。

4.2 横断面数据的坐标转换方法

为了把横断面数据绘制在AutoCAD中,需要将横断面数据转化成AutoCAD的平面坐标。由于数据的格式不同,可分为设计断面线的平面坐标数据转换和原地面线的平面坐标的转换。

(1)设计横断面线数据的平面坐标计算问题

如图1所示:已经知道起点A在AutoCAD平面坐标系中的平面坐标为(x0,y0),该设计线的长度为L和坡度为i,点B的平面坐标为:

当B在右侧的时候,式(1)取加号,当B在左侧的时候,式(1)取减号。

为了计算出各设计坡度变化点的平面坐标,可以先算出设计中桩的平面坐标,然后依次求解出各坡度变化点的平面坐标。

图1 设计坡度变化点坐标求解

图2 原地面点平面坐标计算

(2)原地面数据的平面坐标计算问题

如图2所示,已经知道点A的平面坐标(x0,y0),点A,B的高程分别为H0和H,A与B的横坐标增量为△XAB,则

当B在右侧的时候,式(2)取加号,当B在左侧的时候,式(2)取减号。

为了计算出各原地面点的平面坐标,可以先算出中桩的平面坐标,然后求解出各原地面点的平面坐标。

4.3 设计横断面的坡度线跟原地面线段求交点的方法

如图3所示,设计横断面的坡度线AB的起点A的平面坐标为(xa,ya),B为该坡度线AB上的一点,其平面坐标为(xb,yb),CD为原地面的一段线段,点C和点D的平面坐标分别为(xc,yc)和(xd,yd)。则AB的参数方程为:

其中t>0,同理可得线段CD的参数方程为:

其中0<s<1,由式(3)、式(4)联合解参数t和s可得:

图3 设计横断面的坡度线跟原地面线交点的求解

使用式(5)、式(6)参数求解法,先求出t和s。如果t>0并且0<s<1的时候,则存在交点,将t代入式(3),或者将s代入式(4),即可求得AB和线段CD的交点。

5 横断面图的绘制程序设计

本程序以AutoCAD 2004为平台,在VBA的编程环境开发出适合于施工和监理单位的土石方计算与绘图程序,以VBA语言编制程序,采用Active-X Automation技术控制AutoCAD对象。断面图全部在AutoCAD自动生成,土方量的计算可以由AutoCAD提供的求面积的工具求得。

程序要求输入的原始数据有:原地面测量和设计横断面数据文件,由施工单位测量和图纸上所得,其格式:

对于设计线,其中Li,Ii分别表示第i个点的跟前一个点i-1的距离和该设计线的横坡度,最后一个数据i表示设计线的最后坡度线的坡度。对于原地面线,其中Li,hi分别表示第i个点跟前一个点i-1的距离和第i个点的高程。

5.1 在AutoCAD中创建Excel应用程序和Excel数据的读取问题

要编写存取Excel的应用程序,必须通过VBA将Excel中的对象能够让用户使用,这就需要参考Excel对象的数据库。其具体步骤如下。

(1)打开 AutoCAD的 VBA编辑器(命令: VBAIDE);

(2)选择“工具”\“引用”项,在弹出的“引用”对话框的“可使用的引用”列表框内,选择“Microsoft Excel 8.0 Object Library”项;

(3)单击“确定”按钮;

(4)接下来使用下列代码可创建完整的应用程序对象实例

其中FileName为Excel的包括路径的文件名。这样就可以通过excelSheet.Cells(i,j).Value来获取第i行和第j列的值了。

5.2 绘制横段面图

通过不断读取Excel中的数据,并且计算出各点的地图坐标,利用AutoCAD中的绘制线段的Addline方法,该方法的具体语法是:

其中LineObject为Acadline对象,SPoint和EPoint分别为线段的起点和终点坐标。

为了方便使用AutoCAD命令来调用已编制完成的断面绘制程序“dmhz.dvb”,首先找到AutoCAD2004.lsp文件,它一般是在AutoCAD的安装目录中的SUPPOTR文件夹下,文件AutoCAD2004.lsp的文件名中的2004会随AutoCAD的版本号的不同而有所不同。在Auto-CAD2004.lsp文件的后面增加如下内容:

该段程序中hdmhz是用户自定义的命令,“c:\dmhz.dvb”为含路径的工程文件名,每当CAD程序启动后,AutoCAD2004.lsp会自动读入并运行,这样当在AutoCAD的命令行中输入dmhz命令,就会执行宏命令dmhz。

为了能在 AutoCAD中启动的时候能自动加载VBA程序,先把新建的编好的VBA工程dmhz.dvb拷贝到AutoCAD安装目录下的SUPPOTR文件夹中,并修改文件acad.lsp,该文件一般在用户的目录下的Application Data\Autodesk\AutoCAD 2004\R16.0\chs\Support文件夹下,其中AutoCAD 2004和R16.0会随着安装的AutoCAD的版本不同而不同,如果找不到该文件,则在该文件夹下增加该文件。在该文件后面增加如下内容:

这样只要用户在AutoCAD的命令行中输入hdmhz命令,就可自动执行编好工程dmhz.dvb的宏。

本程序的界面以及利用AutoCAD的面积查询功能编辑生成的横断面图分别如图4和图5所示。

图4 程序界面图

图5 横断面图的生成

6 结 语

利用本文提供的施工横断面图的绘制和土方计算方法开发程序,可以迅速画出施工横断面图,然后利用AutoCAD提供求面积的工具可以很容易求出施工横断面图的土方量。作者在多年的公路测量中,已经使用该程序在安徽大顾店到叶集高速、周六高速、合六高速以及新疆和-铁-托等公路中得到了实践,有效地提高了施工单位和监理单位的工作效率。

[1]符锌砂.公路计算机辅助设计[M].人民交通出版社,1999年4月第一版,P189

[2]龚健雅.地理信息系统基础[M].科学出版,2001年2月第一版,P156~P157

[3]张帆.AutoCAD VBA二次开发教程[M].清华大学出版社,2006年1月第一版,P386

[4]李凤华.AutoCAD2002/2004 VBA开发指南[M].清华大学出版社,2001年4月第一版,P2、P15、P426

[5]王卫东,蒋红斐.道路与铁道工程技算机辅助设计[M].机械工业出版社,2004年1月第一版,P146~P149

Shallowly Discussed The Cross Section and Calculaton of Earthwork′s Volume of Road Construction Based on AutoCAD VBA

Ji Kai
(Anhui communications Technology Institute,Hefei 230051,China)

The graph of cross section and the volume of earthwork is the important base of construction′s measurement,This paper discusses the problems of drawing of cross section and calculating of earthwork′s volume in the plateforme of onAutoCAD.The program is convenient for applying in practice and the calculating accuracy is high.

construction;cross section;earthwork′s volume;AutoCAD

1672-8262(2010)04-133-04

P209

B

2009—10—31

纪凯(1979—),男,讲师,在职研究生;研究方向:变形监测和测量教学。

猜你喜欢
平面坐标横断面土方
奥维互动地图CAD中线坐标精度分析
浅谈蓄水池土方填筑施工
城市道路横断面设计研究
濮阳市拟建立相对独立的平面坐标系统
广州市健康体检人群种植修复情况的横断面研究
常用GPS软件实现平面坐标与WGS84经纬度转换精度探讨
2014年某院医院感染横断面调查
中医院医院感染横断面调查分析
土方计算在工程实例中的应用
长大连续梁上CPIII控制点实时坐标计算方法研究*