APP下载

基于VB曲线放样程序设计

2015-12-24薛皓然蔡云霞

西部资源 2015年6期
关键词:细部源代码偏角

薛皓然 蔡云霞 古 君

内蒙古自治区第七地质矿产勘查开发院 呼和浩特 010020

基于VB曲线放样程序设计

薛皓然 蔡云霞 古 君

内蒙古自治区第七地质矿产勘查开发院 呼和浩特 010020

本文介绍了基于Visual Basic 6.0语言如何开发计算曲线道路放样数据的软件,该软件计算准确,使用方便,适用性强,大大提高了道路测设工作的效率。

Visual Basic 6.0;曲线;放样数据;计算

一、引言

道路放样数据的计算是线路放样工作的重要环节。传统的计算曲线道路测设数据的方法由于计算量大、易出错、放样方法不灵活等缺点,直接影响到线路工程的效率和质量。为快速有效地完成任务,笔者基于Visual Basic 6.0语言编写了计算曲线道路放样数据的程序,主要就工程中几种常见的曲线,分别对偏角法、切线支距法及坐标法对应放样数据的计算进行了编程实现。

二、设计依据

本文仅以圆曲线为例。如图1所示,圆曲线的切线长T、曲线长L、外矢距E及切曲差,可由已知的半径R与线路偏角α按式(1)计算。圆曲线的主要点里程可由式(2)计算。

图1

图2

圆曲线点偏角值的计算方法如图2所示,偏角Δi和圆心角有以上关系,本设计对曲线起点至任一细部点的弦长Ci及相邻细部点间的弦长cci进行了较精确的计算,避免了因弦弧差而产生的误差累积,因而精度高,且放样灵活。

三、程序源代码

由于程序源代码较多,本文仅以圆曲线的偏角法为例(为节省篇幅,程序源代码中“【换行】”表示代码换行,实际操作中按此规则对应处理即可),对应核心代码如下:

Private Sub Cmdjs_Click()

(1)计算曲线要素及主点里程/保留三位小数

T=p3(R*Tan(αh/2))【换行】L=p3(αh*R)

e=p3(R*(1/(Cos(αh/2))-1))q=p3(2*T-L)

Dim γ As String'放样QZ点时的平分角γ

γ=hdtodfm((pi-αh)/2)【换行】ZY=p3(JD-T)

QZ=p3(ZY+L/2)【换行】YZ=p3(QZ+L/2)

(2)求前半段曲线细部点的偏角偏距(后半段曲线类似)

Print#1,"◎计算结果:":Print#1,"-----------"

Print#1,"点号";Spc(4);"里程";Spc(6);"弦长";Spc(6);"偏角(反拨)";Spc(2);"相邻桩点弦长"

Print#1,Spc(1);"ZY";Spc(2);ZY;Spc(2);"000.000";Spc (3);"000°00′00″"

①判断第一段弧长(即分弦对应的弧长)的值

Dim ys0,xs,ys,xl1 As Double【换行】xs=ZY-Int(ZY)【换行】ys0=Int(ZY)Mod c

ys=ys0+xs【换行】If ys=0 Then【换行】 xl1=c【换行】Else

xl1=c-ys【换行】End If

②计算前半段曲线点的里程及偏角偏距

Dim ψ1,C1,cc1 As Double :Dim ψ0,Δ0,Ci,cci,LCi As Double

Dim Δi As Double :Dim Δid As String

If L/2<=xl1 Then【换行】 Δi=0【换行】ElseIf L/2>xl1 And L/2<=c+xl1 Then

'计算前半段曲线第一个点对应的偏角偏距

ψ1=xl1/R【换行】Δi=ψ1/2【换行】LCi=ZY+xl1

Δid=hdtodfm(pi*2-Δi)'偏角向左时,ZY-QZ段在切线的左侧

ψ0=c/R【换行】Δ0=ψ0/2【换行】C1=p3(2*R*Sin (Δi))

cc1=p3(2*R*Sin(Δi))

Print#1,Spc(2);"*";Spc(3);Format(LCi,"000.000");Spc (3);Format(C1,"000.000");Spc(3);Δid;Spc(3);Format(cc1," 000.000")【换行】ElseIf L/2>c+xl1 Then

'计算前半段曲线第一个点对应的偏角偏距

ψ1=xl1/R【换行】Δi=ψ1/2【换行】LCi=ZY+xl1

Δid=hdtodfm(pi*2-Δi)'偏角向左时,ZY-QZ段在切线的左侧

ψ0=c/R【换行】Δ0=ψ0/2

C1=p3(2*R*Sin(Δi))【换行】cc1=p3(2*R*Sin(Δi))

Print#1,Spc(2);"*";Spc(3);Format(LCi,"000.000");Spc (3);Format(C1,"000.000");Spc(3);Δid;Spc(3);Format(cc1," 000.000")

'循环输出前段曲线上各个细部点的里程、偏角和偏距

Do Until Δi>=αh/4-Δ0

LCi=LCi+c【换行】 Δi=Δi+Δ0

Δid=hdtodfm(pi*2-Δi)'偏角向左时,ZY-QZ段在切线的左侧

Ci=p3(2*R*Sin(Δi))【换行】 cci=p3(2*R* Sin(Δ0))

Print#1,Spc(2);"*";Spc(3);Format(LCi,"000.000"); Spc(3);

Format(Ci,"000.000");Spc(3);Δid;Spc(3);Format(cci, "000.000")

Loop【换行】End If

③输出QZ点的里程、偏角和偏距

Dim CQZ,Δn1,ccn1 As Double :Dim ΔQZ As Double : Dim ΔQZd As String

ΔQZ=αh/4【换行】Δn1=ΔQZ-Δi【换行】ccn1=p3(2 *R*Sin(Δn1))

ΔQZd=hdtodfm(pi*2-ΔQZ)'偏角向左时,ZY-QZ段在切线的左侧

CQZ=p3(2*R*Sin(ΔQZ))

Print#1,Spc(1);"QZ";Spc(3);Format(QZ,"000.000"); Spc(3);Format(CQZ,"000.000");Spc(3);ΔQZd;Spc(3);Format (ccn1,"000.000")

End Sub

四、程序的测试与运行

程序编写完成后,所有曲线类型,均经过多个算例验证测试,结果准确无误。现以圆曲线偏角法的计算为例,过程如下图:

图5 选择曲线类型界面

图6 圆曲线计算界面

图7 运行结果界面

五、结束语

本软件从数据输入、计算、读取及存储各个环节进行有效控制,实现了自动、快速地计算曲线放样数据的功能,结果准确,效率高,适用性强,放样方法灵活,满足当下的道路工程施工要求。

[1]李青岳,陈永奇.工程测量学.第3版.北京∶测绘出版社,2008.

[2]顾孝烈,鲍峰,程效军.测量学.第3版.上海∶同济大学出版社,2006.

[3]朱从旭,严晖,曹岳辉.VB程序设计综合教程.第2版.北京∶清华大学出版社,2009.

[4]戴建军,陈桂珍.应用VB实现中测量中任意点坐标的快速计算.测绘信息与工程.2007,32(2).

猜你喜欢

细部源代码偏角
人工智能下复杂软件源代码缺陷精准校正
基于TXL的源代码插桩技术研究
翼吊长涵道发动机短舱内偏角优化和机理研究
软件源代码非公知性司法鉴定方法探析
揭秘龙湖产品“源代码”
加强细部处理,提升物业品质
铁路既有曲线整正计算方法研究