基于VBA路基土方工程量计算的探讨[摘要]本文以断面法土方工程量计算实例,介绍使用vba开发excel工程量计算、autocad绘制断面图程序的主要技术与方法。[关键词]:横断面面积;excel;cad;vba在道路工程施工和监理过程中,经常需要河塘清淤、路基土方开挖和回填工程量的计算审核,工程量计算审核工作量大、耗时多、容易出错、甚至经常发生争议。基于vbaexcel开发的工程量计算和autocad绘图程序,具有简便、高效、通用、修改方便的特点。本文以断面法土方工程量计算实例,介绍利用vba编程建立excel2003与autocad2006的通信,实现数据交换,快速计算工程量绘制断面图的方法。1线路横断面测量线路横断面测量是在各中线桩处测定垂直于中线方向的地面起伏,然后绘成横断面图,是横断面设计、土石方工程量计算和施工时确定断面填挖边界的依据。中桩的地面高程测量完成后,用全站仪、经纬仪、水准仪皮尺法分别测出横断面各特征点的平距(中线前进方向左侧为“-”,右侧为“+”)和高程。2横断面面积计算2.1坐标法断面积计算方法如图1,已知断面图上各转点坐标(xi,yi)则断面面积为:2.2设计线和原地面线的交点计算方法如图2所示,直线cd与直线ab相交于p点,则p点的坐标方程为:解上述方程得xp公式为:根据上述方程可以计算交点距离、高程。3vba应用软件简介visualbasicforapplications(简称vba)是新一代标准宏语言,是基于visualbasicforwindows发展而来的。vba易于学习掌握,可以使用宏记录器记录用户的各种操作并将其转换为vba程序代码,有助于使工作自动化,提高工作效率。vba可以直接应用excel、autocad为平台,开发应用程序。4基于excelvba的横断面积计算程序4.1设计计算表新建一个excel工作薄,在工作表、sheet3中分别按照图4、图3设计面积计算表和设计线和原地面线的交点计算表。4.2编辑计算程序从excel菜单中,选择[工具]→[宏]→[visualbasic编辑器],或者按快捷键alt+f11进入visualbasicedirtor。从编辑器菜单中,选择[插入]→[模块]在[模块1]中写入下列设计线和原地面线的交点计算、横断面积计算程序。publicsub交点计算()dimx(4),y(4),xp(2),yp(2),k(2,2)asdoublewithsheet3dowhile.cells(j*3+3,3)““i=3:s=0dox(i)=.cells(j*3+3,i):y(i)=.cells(j*3+4,i)x(i+1)=.cells(j*3+3,i+1):y(i+1)=.cells(j*3+4,i+1)if.cells(j*3+4,i+1)=““thenx(i+1)=.cells(j*3+3,3):y(i+1)=.cells(j*3+4,3)s=(y(i+1)+y(i))*(x(i+1)-x(i))/2+sexitdoendifs=(y(i+1)+y(i))*(x(i+1)-x(i))/2+s:i=i+1loop.cells(j*3+2,15)=abs(s):j=j+1loopendwithendsub5基于autocadvba的横断面绘图程序从编辑器菜单中,选择[工具]→[引用],在[可使用的引用]里勾选autocad2006typelibrary,点[确定]离开,在“模块1”中写入下列横断面绘图程序。subcad绘制断面图()onerrorresumenextdimacadappasacadapplicationsetacadapp=getobject(,”autocad.application”)iferrthenerr.clearsetacadapp=createobject(“autocad.application”)endifdimacaddocasacaddocumentsetacaddoc=acadapp.activedocumentdimlineobjasacadlinedimstartpoint(2),endpoint(2)asdoubledimpt(0to2)asdoubledimtextobjasacadtextwithsheet1dowhile.cells(j*3+3,3)“宏”“宏”命令(或者按alt+f8),在宏名框中键入加载的函数名。本程序需要microsoftexcel2003和autocad2006运行环境,运行文件前要在excel里通过单击菜单[工具]\[宏]\[安全性],进入“安全性”对话框,把安全性级别调整为“中”以下,启动宏。6\应用实例某路基横断面设计槽底宽为2×10m,挖方边坡为1:1,中桩设计高程为7.7m,横坡为2%,原地面测量记录见下表。横断面原地面测量记录把表1前两点、后两点以及左右两侧设计边坡设计线输入图3所示的sheet3中,运行“交点计算”程序,计算出左右开挖分界点;把分界点替换表1中的第1点和最后一点,和设计线一起输入到图3所示的中,程序运行后生成的成果见图5。7结论和展望笔者利用vba开发出的excel的工程量计算程序,在工程应用上发挥了很好的作用,尤其在复杂的工程量计算的数据处理等方面,充分体现了现代工程量计算的实时、动态和可视化等要求,为我们的工作带来了方便。此计算方法对excel软件实用技术在建设工程中的全面应用与推广也具有一定的积极意义。参考文献[1].microsoftcorporation.microsoftexcelvisualbasic参考.2003[2].张雨化.道路勘测设计[m].北京;人民交通出版社,1997[3].张帆、郑立楷、王华杰.autocadvba开发精彩实例教程[m].北京.清华大学出版社,2006