基于VB在EXCEL中程序开发对道路曲线测设的应用

2013-04-29 11:49:01宋轩彬韩芬
中国高新技术企业 2013年6期
关键词:程序设计

宋轩彬 韩芬

摘要:文章详细叙述了曲线的要素及计算方法,现阶段我国采用的测设方法及计算要素,程序的设计与实现,软件的使用与功能。

关键词:道路曲线;计算要素;VB;EXCEL;程序设计

中图分类号:P208 文献标识码:A 文章编号:1009-2374(2013)09-0050-02

1 概述

随着科学技术的进步,全站仪和RTK技术在施工测量中的应用与普及,目前全站仪配合RTK在道路施工测量中已被广泛采用,替代了传统的曲线测设方法,此技术极大地提高了施工测量的精确度和工作效率。

2 问题的提出

曲线测设是工程建筑物放样的组成部分之一,尤其是在公路、铁路的放样中,曲线的测设更为重要,也更为频繁。在传统的曲线道路中线的测设较为常用的测设方法有弦线偏角法和切线支距法。这类方法最大的缺点是内外业工作量大;实地测设受现场地形条件影响大;测量误差容易积累,测设精度低。近年来,随着测量仪器设备的逐步更新,曲线测设在内业计算和现场测设方面都有了较大改进(如全站仪极坐标法和RTK技术测设曲线),这种测量误差不累计,测设的点位精度高。这样就对我们能否准确快速地计算曲线上每个里程的坐标提出了要求。

本文用Visual Basic 6.0在EXCEL中程序开发功能,基于现阶段的各种曲线,编写了曲线测设坐标的计算程序,下面以带有缓和曲线的圆曲线为例。

3 程序的设计与实现

3.1 程序设计原理

曲线的测设原理在工程测量学中有详细的介绍,在此不再详细描述,其主要步骤如下:曲线综合要素计算→第一缓和曲线单元设计坐标计算→带缓和曲线的圆曲线单元设计坐标计算→第二缓和曲线单元设计坐标的计算。

3.2 程序的设计与部分代码

3.2.1 本程序是基于VB在EXCEL中的程序开发,在EXCEL中“工具”菜单下的“宏”命令下编写相应的VB程序代码,后输入要求的参数,进行程序执行即可。此程序的实现只要输入相应的曲线要素ZH-JD的方位角,曲线半径R,缓和曲线长,转向角,曲线全长,直缓点里程,上一曲线缓直点里程,下一曲线直缓点里程,DJ的X、Y坐标,曲线偏向。按下设定的程序键,如CTRL+X键,EXCEL就自动计算出相应的计算要素;在计算里程栏下输入任意一个里程值,按下CTRL+X即可算出此里程在曲线上的坐标。注意的是输入的里程应该在上一曲线直缓点里程和下一曲线直缓点里程之内,如果输入的里程为上一曲线直缓点里程和下一曲线直缓点里程之外的,就会提示“里程溢出”。如果计算其他的里程,在输入已知栏的后面输入相应曲线段的要素,就可以计算自己需要的里程坐标了。

3.2.2 程序部分过程和函数的原代码如下:

ElseIf lc > ZH And lc < HY Then

li = lc - ZH

xi = li - li ^ 5 / 40 / R ^ 2 / L0 ^ 2

yi = li ^ 3 / 6 / R / L0

b = (li ^ 2) * pa / 2 / R / L0

X = X01 + xi * Cos(A03) - CC * yi * Sin(A03)

Y = Y01 + xi * Sin(A03) + CC * yi * Cos(A03)

Ai = Deg(A0) + CC * b

If Ai > 360 Then

Ai = Ai - 360

End If

ElseIf lc = HY Then

li = lc - ZH

xi = li - li ^ 5 / 40 / R ^ 2 / L0 ^ 2

yi = li ^ 3 / 6 / R / L0

b = (li ^ 2) * pa / 2 / R / L0

X = X01 + xi * Cos(A03) - CC * yi * Sin(A03)

Y = Y01 + xi * Sin(A03) + CC * yi * Cos(A03)

Ai = Deg(A0) + CC * b

If Ai > 360 Then

Ai = Ai - 360

End If

ElseIf lc > HY And lc < YH Then

li = lc - ZH

a12 = ((li - L0) * pa / R + B0) * pi / 180

xi = R * Sin(a12) + m

yi = R * (1 - Cos(a12)) + P

b = (li - 0.5 * L0) * pa / R

X = X01 + xi * Cos(A03) - CC * yi * Sin(A03)

Y = Y01 + xi * Sin(A03) + CC * yi * Cos(A03)

Ai = Deg(A0) + CC * b

If Ai > 360 Then

Ai = Ai - 360

End If

ElseIf lc = YH Then

li = lc - ZH

a12 = ((li - L0) * pa / R + B0) * pi / 180

xi = R * Sin(a12) + m

yi = R * (1 - Cos(a12)) + P

b = (li - 0.5 * L0) * pa / R

X = X01 + xi * Cos(A03) - CC * yi * Sin(A03)

Y = Y01 + xi * Sin(A03) + CC * yi * Cos(A03)

Ai = Deg(A0) + CC * b

If Ai > 360 Then

Ai = Ai - 360

End If

4 结语

近年来,随着测量仪器设备的逐步更新,测设方法的改进(如全站仪极坐标法和RTK技术测设曲线)和施工过程中的各种测量要求,这样就对我们能否准确快速地计算曲线上每个里程的坐标提出了要求。本程序很好地解决了这一问题,极大提高了工作效率,简化了内业的计算工作,在单位的工程实践中得到了广泛的运用。

程序是基于VB在EXCEL中的程序开发,操作简单,界面友好,功能较为强大。由于水平有限,文中所述不一定完全正确。在此仅做抛砖引玉之作,望测绘界的同仁给予批评和斧正。

参考文献

[1]张正禄.工程测量学[M].武汉:武汉大学出版社,

2007.

[2]刘钢. 杨崇礼,等.Visual Basic 6.0程序设计实用教程

[M].北京:中国民航出版社,2000.

[3]VK工作室.EXCEL 2000 VBA入门[M].北京:科学出

版社,2001.

作者简介:宋轩彬(1987—),男,安徽南陵人,安徽省长江河道管理局测绘院技术员,助理工程师,研究方向:地形测量和工程测量。

(责任编辑:周 琼)

猜你喜欢
程序设计
基于Visual Studio Code的C语言程序设计实践教学探索
计算机教育(2020年5期)2020-07-24 08:52:56
从细节入手,谈PLC程序设计技巧
电子制作(2019年9期)2019-05-30 09:42:04
高职高专院校C语言程序设计教学改革探索
PLC梯形图程序设计技巧及应用