王凱
摘 要:隨著現代測繪科技、儀器的發(fā)展進步,測繪技術裝備發(fā)生了革命性變化。電子水準儀逐漸取代了傳統(tǒng)光學水準儀,在水準測量作業(yè)中發(fā)揮著越來越重要的作用。外業(yè)利用電子水準儀進行水準測量結束后,通過內業(yè)處理將數據轉換為ExcelL格式的電子水準測量記錄手簿,但是由于數據量較大,因此手工檢查比較費時,且容易出現漏檢的情況。本文論述了利用VB編程,實現對電子水準測量記錄手簿中單元格的數據進行檢查,自動標記出超限的數據,實現水準手簿內業(yè)檢查的自動化,提高內業(yè)工作效率。
關鍵詞:VB Excel 電子水準測量手簿 自動檢查
中圖分類號:P22 文獻標識碼:A 文章編號:1674-098X(2017)10(c)-0140-03
1 引言
水準測量是利用水準儀提供的水平視線測定兩點間的高差,進而求得測點高程的方法,它是高程測量中最基本、精度最高的一種方法,在國家高程控制測量、工程勘察和施工放樣中得到廣泛應用。
電子水準儀在現今的水準測量中發(fā)揮著重要作用,與傳統(tǒng)光學水準儀相比有以下特點。
(1)讀數客觀:不存在誤記問題,沒有人為讀數誤差。
(2)精度高:視線高和視距讀數都是采用大量條碼分劃圖像經處理后取平均得出來的,因此削弱了標尺分劃誤差的影響。多數儀器都有進行多次讀數取平均的功能,可以削弱外界條件影響,不熟練的作業(yè)人員也能進行高精度測量。
(3)速度快:由于省去了報數、聽記、現場計算的時間以及人為出錯的重測數量,測量時間與傳統(tǒng)儀器相比可以節(jié)省1/3左右。
(4)效率高:只需調焦和按鍵就可以自動讀數,減輕了勞動強度。
電子水準儀外業(yè)測量結束后,內業(yè)數據處理軟件可以將外業(yè)測量數據處理成規(guī)范的電子水準測量記錄手簿。圖1為一段標準的電子水準手簿記錄格式,計算機中電子文檔保存為Excel軟件的XLS或XLSX格式。
實際測量工作中,由于路線較長,觀測天數多,測站較多,某些測站難免會產生一些超限的讀數,如視線長度、視距差、視距累積差超限等。在測站較多的情況下,內業(yè)檢查工作將會花費較長的時間,于是筆者嘗試使用VB編程來實現手簿的自動檢查。
VB是Visual Basic的簡稱,是由微軟公司開發(fā)的結構化、模塊化、面向對象的、包含協(xié)助開發(fā)環(huán)境的事件驅動為機制的可視化程序設計語言。從任何標準來說,VB都是世界上使用人數最多的語言。它源自于BASIC編程語言,擁有圖形用戶界面(GUI)和快速應用程序開發(fā)(RAD)系統(tǒng),可以輕易地使用DAO、RDO、ADO連接數據庫,或者輕松地創(chuàng)建ActiveX控件。程序員可以輕松地使用VB提供的組件快速建立一個應用程序。Excel軟件本身提供對VBA的支持,VBA是Visual Basic的一種宏語言,主要能用來擴展Windows的應用程式功能,特別是Microsoft Office軟件套裝。通過Excel的錄制宏功能就可以查看到VBA代碼,VBA代碼通過簡單的修改就可以應用于VB編程中來,為軟件的編制帶來很大的便利。
2 軟件設計思路
內業(yè)需要進行檢查的數據包括視線長度、前后視距差、前后視距累積差、視線高度、高差較差和路線長度。其中視線長度與視線高度即為水準手簿中視距讀數和標尺讀數,此兩項數據是外業(yè)觀測獲得,其余4項均根據視距讀數與標尺讀數計算得來。因此軟件運行時,首先計算前后視距差、前后視距累積差、高差較差和路線長度,然后再判斷每個測站有無超限的數據,如果有則彈出提示等待用戶檢查,如果沒有則結束程序(見圖2)。
3 軟件設計
3.1 軟件界面
軟件界面分別放置3個下拉列表框,讓用戶選擇所引用的規(guī)范、水準等級和水準儀型號,選擇完成后在表格中顯示對應的水準測量觀測技術要求數據,以這些數據作為檢查的依據。點擊“開始檢查”按鈕即可開始檢查手簿。
3.2 軟件代碼
由于文章篇幅限制,這里僅列出部分代碼:
‘分別定儀EXCEL軟件對象、工作簿和工作表
Dim Xlapp As Excel.Application
Dim Xlbook As Excel.Workbook
Dim Xlsheet As Excel.Worksheet
‘定義6個變量,分別獲取軟件中設置的各項限差
Dim GdSxcd As Single ‘視線長度
Dim GdSjc As Single ‘前后視距差
Dim GdSjljc As Single ‘前后視距累積差
Dim GdSxgd As Single ‘視線高度
Dim GdGcjc As Single ‘高差較差
Dim GdLxcd As Single ‘路線長度
GdSxcd = Val(Lable1.Caption)
GdSjc = Val(Lable2.Caption)
GdSjljc = Val(Lable3.Caption)
GdSxgd = Val(Lable4.Caption)
GdGcjc = Val(Lable5.Caption)
GdLxcd = Val(Lable6.Caption)
‘檢查各項數據是否符合水準觀測技術要求,如不符合要求,則把此單元格顏色設為紅色(單元格的Font.ColorIndex 設為3)
For i = 1 To ZongCeZhan
‘檢查視線長度
If Xlsheet.Cells(6 + i * 3, 3) > GdSxcd Thenendprint
Xlsheet.Cells(6 + i * 3, 3).Font.ColorIndex = 3
End If
‘檢查前后視距差
If Abs(Xlsheet.Cells(8 + i * 3, 3)) > GdSjc Then
Xlsheet.Cells(8 + i * 3, 3).Font.ColorIndex = 3
End If
‘檢查前后視距累積差
If Abs(Xlsheet.Cells(8 + i * 3, 4)) > GdSjljc Then
Xlsheet.Cells(8 + i * 3, 4).Font.ColorIndex = 3
End If
‘視線高度
If Xlsheet.Cells(6 + i * 3, 5) < GdSxgd Then
Xlsheet.Cells(6 + i * 3, 5).Font.ColorIndex = 3
End If
‘檢查前后尺兩次讀數之差,高差較差
If Abs(Xlsheet.Cells(6 + i * 3, 7)) > GdGcjc Then
Xlsheet.Cells(6 + i * 3, 7).Font.ColorIndex = 3
End If
Next i
'檢查路線長度
If Xlsheet.Cells(ZongCeZhan * 3 + 11, 4) > GdLxcd Then
Xlsheet.Cells(ZongCeZhan * 3 + 11, 4).Font.ColorIndex = 3
End If
4 結語
軟件運行過程中不需要人工進行干預,實現了水準手簿的自動檢查,經實測,一個總測站數300站的水準手簿,檢查時間僅用5s,大大節(jié)省了內業(yè)檢查的時間。該軟件已在筆者單位實際工作中取得了很好的應用效果。
參考文獻
[1] GB50026-2007,工程測量規(guī)范[S].
[2] GBT12897-2006,國家一二等水準測量規(guī)范[S].
[3] 王保國.水準測量計算手簿自動生成的設計與實現[J].江西測繪,2012,91(1):29-30.endprint