基于VBA路基土方工程量计算探析.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于VBA路基土方工程量计算探析

基于VBA路基土方工程量计算探析[摘要]本文以断面法土方工程量计算实例,介绍使用VBA 开发Excel 工程量计算、AutoCAD绘制断面图程序的主要技术与方法。 [关键词]:横断面面积;Excel;CAD ;VBA 在道路工程施工和监理过程中,经常需要河塘清淤、路基土方开挖和回填工程量的计算审核,工程量计算审核工作量大、耗时多、容易出错、甚至经常发生争议。基于VBA Excel 开发的工程量计算和AutoCAD绘图程序,具有简便、高效、通用、修改方便的特点。本文以断面法土方工程量计算实例,介绍利用VBA编程建立Excel2003与AutoCAD2006的通信,实现数据交换,快速计算工程量绘制断面图的方法。 1 线路横断面测量 线路横断面测量是在各中线桩处测定垂直于中线方向的地面起伏,然后绘成横断面图,是横断面设计、土石方工程量计算和施工时确定断面填挖边界的依据。中桩的地面高程测量完成后,用全站仪、经纬仪、水准仪皮尺法分别测出横断面各特征点的平距(中线前进方向左侧为“-”,右侧为 “+”)和高程。 2 横断面面积计算 2.1 坐标法断面积计算方法 如图1,已知断面图上各转点坐标(xi,yi)则断面面积为: 2.2设计线和原地面线的交点计算方法 如图2所示,直线CD与直线AB相交于P点,则P点的坐标方程为: 解上述方程得XP公式为: 根据上述方程可以计算交点距离、高程。 3 VBA应用软件简介 Visual Basic for Applications(简称VBA)是新一代标准宏语言,是基于Visual Basic for Windows 发展而来的。VBA 易于学习掌握,可以使用宏记录器记录用户的各种操作并将其转换为VBA 程序代码,有助于使工作自动化,提高工作效率。VBA 可以直接应用Excel、AutoCAD为平台,开发应用程序。 4 基于Excel VBA的横断面积计算程序 4.1设计计算表 新建一个Excel工作薄,在工作表、Sheet3中分别按照图4、图3设计面积计算表和设计线和原地面线的交点计算表。 4.2编辑计算程序 从Excel菜单中,选择[工具]→[宏]→[Visual Basic 编辑器],或者按快捷键Alt+F11进入Visual Basic Edirtor。 从编辑器菜单中,选择[插入]→[模块]在[模块1]中写入下列设计线和原地面线的交点计算、横断面积计算程序。 Public Sub 交点计算() Dim x(4),y(4),Xp(2),Yp(2),k(2,2) As Double With Sheet3 Do While .Cells(j*3+3,3) ““ For n=1 To 2 For i=1 To 4 x(i)=.Cells(j*3+3,(n-1)*4+i+2) y(i)=.Cells(j*3+4,(n-1)*4+i+2) Next i k(n,1)=(y(2)-y(1))/(x(2)-x(1)) k(n,2)=(y(3)-y(4)) / (x(3)-x(4)) Xp(n)=(k(n,1)*x(1)-k(n,2)*x(4)+y(4)-y(1))/(k(n,1)-k(n,2)) Yp(n)=y(1)+k(n,1)*(Xp(n)-x(1)) .Cells(j*3+3,10+n)=Xp(n):.Cells(j*3+4,10+n)=Yp(n) Next n j=j+1 Loop End With End Sub Public Sub 面积计算2() Dim x(20), y(20), S As Double With Sheet2 Do While .Cells(J*3+4, 3) ““ i=3: S=0 Do x(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)=““ Then x(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+S Exit Do End If S=(y(i+1)+y(i))*(x(i+1)-x(i))/2+S : i=i+1 Loop .Cells(J*3+2, 15)=Abs(S) : J=J+1 Loop End With End Sub 5 基于Au

文档评论(0)

docman126 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

版权声明书
用户编号:7042123103000003

1亿VIP精品文档

相关文档