基于VB的圆曲线偏角法测设程序
2017-08-07朱金秀盖侨侨
朱金秀,盖侨侨
(安徽理工大学测绘学院,安徽 淮南 232001)
基于VB的圆曲线偏角法测设程序
朱金秀,盖侨侨
(安徽理工大学测绘学院,安徽 淮南 232001)
介绍了利用VB良好的人机交互对话界面,运用VB代码设计出一种与传统圆曲线测设一致的智能数据处理软件程序,并验证了程序的易用性与可靠性。
圆曲线;偏角法;Visual Basic 6.0;放样数据
在应用工程测量学中经常遇到道路曲线测设问题,放样数据的处理是曲线测设的基础,传统的手工计算计算量大、烦琐且容易出错,直接影响线路工程的效率和质量。
为快速有效的完成任务,本文基于VB语言编写了计算圆曲线道路放样数据的程序,通过对偏角法对应放样数据的计算进行了编程实现。
1 设计原理
1.1 曲线要素计算
圆曲线要素包括曲线半径R、线路转角α、切线长T、曲线长L、外矢距E和切曲差q。其中,曲线半径R和线路转角α在线路的勘探设计阶段给出,其他四个要素的计算公式如下。
q=2T-L
图1 圆曲线示意图Fig.1 Schematic diagram of circular curve
里程计算:
按顺序JD→ZY→QZ→YZ
ZY里程=JD里程-T
QZ里程=ZY里程+L/2
YZ里程=QZ里程+L/2
检核:检验JD里程+T-q的值是否与上式计算结果一致。
1.2 圆曲线基于偏角法的详细测设
圆曲线基于偏角法的详细测设计算要素主要包括偏角Δ(i),细部点距ZY点或YZ点曲线长lh(i) ,相邻桩点之间的弦长cx(i)相邻桩点之间的弧长cn(i),里程l(i) ,计算方法如下式。
Δ(i) =Δ(1) + (i - 1) ×Δ(0)
lh(i)=2×R×sin(Δ(i))
cn(i) = cn(1) + (i - 1) ×c
l(i) = l(1) + (i - 1) × c
图2 偏角法放样示意图Fig.2 Schematic diagram of laying off by deflection angle method
2 程序实现
2.1 曲线要素及主点里程计算
T = Int((R * Tan(α / 2)) * 100 + 0.5) / 100
l = Int(α * R * 100 + 0.5) / 100
E = Int(R * (1 / Cos(α / 2) - 1) * 100 + 0.5) / 100
q = Int((2 * T - l) * 100 + 0.5) / 100
lzy = lc - T
lqz = lzy + l / 2
lyz = lqz + l / 22.2 求ZY点到QZ点偏角偏距(ZY点到QZ点类似)
第一,求半条曲线离首端最近一点的分弦cn(1),到ZY点的距离l(1),偏角Δ(1)。
cn(1) = Int(lczy) - Int(lczy) Mod c + c - lczy
l(1) = Int(lczy) - Int(lczy) Mod c + c
Δ(1) = (cn(1) / (2 * Form3.R)) * (180 / Form2.pi)
Δ0 = c / (2 * Form3.R) * (180 / Form2.pi)
第二,求前半段点的偏角偏距。
Print “计算结果:”
Print “点号”; Spc(2); “里程”; Spc(4); “相邻点弦长”; Spc(3); “相邻点弧长”; Spc(3); “至ZY点弦长”; Spc(4); “偏角”
Print “ZY”; Spc(3); Format(lczy, “000.000”); Spc(10); Spc(10); Spc(17); “000°00′00″”
‘循环输出前半段曲线各桩点的点号、里程及对应的偏距以及相邻点弦长与弧长和至ZY点的弦长
Do
i = i + 1
l(i) = l(1) + (i - 1) * c ‘l(i)为各桩点对应的里程
Δ(i) = Δ(1) + (i - 1) * Δ0 ‘Δ(i) 为各桩点对应的偏角
cx(i) = 2 * Form3.R * Sin((Δ(i) - Δ(i - 1)) * pi / 180) ‘cx(i) 为各相邻桩点之间的弦长
cn(i) = cn(1) + (i - 1) * c ‘cn(i)为各桩点到ZY的弧长
lh(i) = lh(i - 1) + cx(i) ‘lh(i)为各桩点到ZY的弦长
x(i) = Format(Int(Δ(i)), “000”)
y(i) = Format(Int((Δ(i) - Int(Δ(i))) * 60), “00”)
z(i) = Format(Int(((Δ(i) - Int(Δ(i))) * 60 - y(i)) * 60), “00”)
‘x(I),y(i),z(i)的引用是为了将角度转化为度秒分格式
Print i; Spc(2); Format(l(i), “000.000”); Spc(3); Format(cx(i), “000.000”); Spc(5); Format(cn(i) - cn(i - 1), “000.000”); Spc(5); Format(lh(i), “000.000”); Spc(3); x(i) & “°” & y(i) & “′” & z(i) & “″”
Loop While l(i) <= lcqz - c
‘求出曲中点对应的各要素
n = (lcqz - lczy) / (2 * Form3.R) * (180 / pi)
Print “QZ”; Spc(3); Format(lcqz, “000.000”); Spc(3); Format(Form3.l / 2 - (lh(i) - lh(i - 1)), “000.000”); Spc(5); Format(lcqz - lczy - cn(i), “000.000”); Spc(5); Format(2 * Form3.R * Sin(Form3.α / 4), “000.000”); Spc(3); Format(Int(n), “000”) & “°” & Format(Int((n - Int(n)) * 60), “00”) & “′” & Format(Int(((n - Int(n)) * 60 - Int((n - Int(n)) * 60)) * 60), “00”) & “″”
第三,同理,可编出后半段点的偏角偏距。
3 程序的测试与运行
程序编写完成后,经多个算例验证测试后,结果准确无误,现就圆曲线偏角法计算,过程如图。
图3 数据输入界面Fig.3 Data input interface
图5 结果输出Fig.5 Output
注意:本软件所指的偏角仅给出角度值,实际应用中要考虑正拨与反拨,如果曲线在切线的右侧,为正拨;曲线在切线的左侧,为反拨。
4 结语
本文介绍的基于VB的圆曲线偏角法测设程序,输入已知数据,自动进行数据处理计算及得到最终成果表。过程和传统的导线计算表一致,但是比较快捷、方便且准确度高。利用VB语言编写计算VB强大的人机对话功能使得到的结果透明度高,便于检核和修改错误,提升了圆曲线测量数据处理计算的工作效率。可见,在VB环境下编制曲线测设程序,具有多功能、快速、准确、简单等特点,满足当下道路施工要求。
[1] 胡振琪.应用工程测量学[M].北京:煤炭工业出版社,2008.
[2] 薛皓然,蔡云霞,古君.基于VB曲线放样程序设计[J].西部资源,2015,(06):101-102.
Measuring program for laying off circular curve by deflection angle method based on VB
ZHU Jin-xiu, GE Qiao-qiao
(School of Surveying and Mapping, Anhui University of Science and Technology, Huainan 232001, China)
This paper describes the way of using the VB code to design a set of intelligent data processing software with the use of VB good man-machine interface, which is consistent with the way of laying off traditional circular curve, and verify the usability and reliability of the program.
Circular curve; Deflection angle method; Visual Basic 6.0; Layout data
2017-04-02
朱金秀(1997-),女,在校本科生。
P258
A
1674-8646(2017)10-0176-02