宋軒彬 韓芬
摘要:文章詳細敘述了曲線的要素及計算方法,現階段我國采用的測設方法及計算要素,程序的設計與實現,軟件的使用與功能。
關鍵詞:道路曲線;計算要素;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—),男,安徽南陵人,安徽省長江河道管理局測繪院技術員,助理工程師,研究方向:地形測量和工程測量。
(責任編輯:周 瓊)