国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

VB6.0程序在全站儀圖根導線測量中的應用

2014-09-24 05:42吳呂穩(wěn)
城市建設理論研究 2014年25期
關鍵詞:全站儀邊長導線

吳呂穩(wěn)

摘要:充分利用全站儀的各種功能,用“VB6.0”編寫的程序直接對全站儀觀測的記錄數(shù)據(jù)進行分析處理,并生成平差文件和觀測手簿,達到內(nèi)外業(yè)一體化圖根導線測量。

關鍵詞:全站儀;VB6.0;圖根導線觀測;數(shù)據(jù)格式處理;數(shù)據(jù)檢查處理

中圖分類號:C37文獻標識碼: A

1 前言

全站儀在地形、地籍測量中的廣泛應用,使圖根導線觀測更加準確、快捷,但大部分的導線平差軟件還不支持與全站儀直接進行數(shù)據(jù)交換,平差計算還需要人工對全站儀的觀測數(shù)據(jù)進行整理計算、手工錄入,不僅費時費力,還容易產(chǎn)生粗差。

全站儀具有測距測角自動記錄及傳輸數(shù)據(jù)的自動化的功能,本文以topcon系列全站儀為例,利用“VB6.0”編寫的程序,對觀測數(shù)據(jù)進行分析處理,并進行轉(zhuǎn)換、檢查,最終生成清華山維nasew95格式的平差文件及Word格式的導線平差文件。

2 全站儀觀測數(shù)據(jù)格式

topcon全站儀以測量模式輸出的原始觀測數(shù)據(jù)文件一般有兩種,見表1,表2。

表1 斜距(SD)模式

? +01178481 m 0852030 +1203040 d 01174572

ID SD m/f V H d/g/m HD

數(shù)據(jù)識別符 斜距 距離單位 垂直角 水平角 角度單位 平距

t 00 +00 +25 099 EXT(CRLF)

t/* L P O BCC

傾斜改正(t打開,*關閉) 0值 大氣改正數(shù) 棱鏡常數(shù) 塊較驗符 結束符

表2平距/高差(HD/VD)模式

R +01174572 m 0852030 +1203040 d 01174572

ID HD m/f V H d/g/m HD

數(shù)據(jù)識別符 平距 距離單位 垂直角 水平角 角度單位 平距

t 00 +00 -30 099 EXT(CRLF)

t/* L P O BCC

傾斜改正(t打開,*關閉) 0值 大氣改正數(shù) 棱鏡常數(shù) 塊較驗符 結束符

3 程序模塊設計思想

程序分為“數(shù)據(jù)預處理”、“中間數(shù)據(jù)檢查處理”和“平差文件、導線觀測手簿”三部分。

“數(shù)據(jù)預處理”模塊:利用VB程序讀取全站儀觀測數(shù)據(jù)文件,根據(jù)數(shù)據(jù)識別符對每測站的字符串進行分解,來獲取各測站及觀測方向點(點名、儀器高、方向名、水平角、垂直角、距離、目標高)信息,生成后綴為.ELE的中間文件(*.ELE文件為清華山維nasew95平差軟件的外業(yè)數(shù)據(jù)觀測格式)。*.ELE以文本格式保存,生成速度快、存取方便,生成的數(shù)據(jù)格式內(nèi)容整齊、便于人工辯讀及除去多余觀測量。

表3中間文件數(shù)據(jù)格式

*A003,1.610

測站名,儀器高

004,HZS,000.0000,090.2454,00083.671,1.194

測站,模式,水平角,垂直角,距離,目標高

002,HZS,244.0324,090.0415,00084.636,1.194

----

盤左盤右分隔符

A002,HZS,064.0307,269.5542,00084.636,1.194

A004,HZS,179.5943,269.3453,00083.671,1.194

“中間數(shù)據(jù)檢查處理”:調(diào)用Microsoft Access軟件將*.ELE文件導入到數(shù)據(jù)庫中,計算2C、指標差、高差等計算量,使用SQL語言對測站的盤左盤右方向名是否相同、2C、指標差、對向邊長、對向高差等精度進行檢查并生成報表;

“平差文件、導線觀測手簿”:對通過“中間數(shù)據(jù)檢查處理”的*.ELE文件,從Access數(shù)據(jù)庫中提取所需數(shù)據(jù),在已知點數(shù)據(jù)文件中提取已知點生成*.MSM文件,直接調(diào)用清華山維nasew95程序打開進行平差計算。平差文件直接加載了已知點數(shù)據(jù),減少了人為輸入產(chǎn)生的錯誤。

提取Access中的觀測數(shù)據(jù),在Word軟件中生成導線觀測手簿(表四),便于后期資料整理。

表四圖根導線觀測手簿

4 程序代碼

4.1數(shù)據(jù)預處理

(1)導線參數(shù)設定

Load Dialog1

Dialog1.Show vbModal‘調(diào)用參數(shù)設置對話窗體

Open App.Path & "daoxian.lyb" For Random As #1 Len = Len(DaoXian)‘將導線設置參數(shù)寫入到二進制文件中,方便調(diào)用。

Put #1, 1, DaoXian

(2)讀取原始觀測數(shù)據(jù)

CommonDialog1.ShowOpen ‘調(diào)用打開對話框

RichTextBox1.LoadFile CommonDialog1.Filename, rtfText ‘打開原始觀測文件,讀取文件內(nèi)容到文本框內(nèi)

(3)數(shù)據(jù)轉(zhuǎn)換(生成*.ELE文件)

TempStr = QuWei(TempStr)‘調(diào)用函數(shù)去掉文本中的CRLF、EXT和塊較驗符

利用循環(huán)語句對每測站進行讀取

Cz = StrHead(TempStr, "_'") ‘測站信息

If InStr(ch, "_?+") > 0 Then‘判斷邊長測量模式

………

對字符串進行分解,根據(jù)設置的參數(shù)重新組合得到測站的方向點點名、距離、垂直角、水平角、目標高。

End If

RichTextBox1.Text=“”‘清空文本框中的內(nèi)容

RichTextBox1.Text=NewTempStr ‘將處理好的文本寫入到文本框中

CommonDialog1.ShowSave‘彈出保存對話框

RichTextBox1.SaveFile CommonDialog1.Filename, rtfText

4.2 中間數(shù)據(jù)檢查處理

讀取*.ELE文件→Access→數(shù)據(jù)檢查

(1) *.ELE文件導入Access

Set db = OpenDatabase(App.Path & "Traverse.mdb") ‘設置數(shù)據(jù)庫

db.Execute "INSERT INTO [測站](ID,測站名,儀器高,文件號) VALUES(CZGC)"‘讀入測站信息。

db.Execute "INSERT INTO [方向點](ID,方向名,水平角盤左,垂直角盤左,邊長讀數(shù)1,覘標高,文件號)VALUES(FXGCPZ)" ‘讀入觀測方向信息。

(2)各項檢查常數(shù)計算

Set RS = db.OpenRecordset("select * from 方向點 where 文件號=1" )

RS.Edit

RS.Fields(4).Value = (DMS(DEG(RS.Fields(2).Value) - (DEG(RS.Fields(3).Value) - DEG(180)))) * 10000 ‘計算指標差

RS.Fields(5).Value = DMS(DEG(RS.Fields(2).Value) - DEG(RS.Fields(4).Value / 20000)) ‘計算2C

RS.Fields(6).Value = DMS(DEG(RS.Fields(5).Value) - DEG(Val(Gl)))‘計算水平角中值

RS.Update

(3)數(shù)據(jù)檢查

Set RS = db.OpenRecordset(select測站.ID,測站名, 方向名,指標差 from 方向點,測站 WHERE 測站.ID=方向點.ID and abs(指標差)>" & ZBC & " and 方向點.文件號=1") ‘檢測指標差。

Set RS = db.OpenRecordset("select測站.ID,測站名, 方向名,邊長讀數(shù)1,讀數(shù)2 from 方向點,測站 WHERE 測站.ID=方向點.ID and abs(邊長讀數(shù)1-讀數(shù)2)>" & BC & " and 方向點.文件號="1) ‘邊長檢測。

Set RS = db.OpenRecordset("select測站.ID,測站名, 方向名,高差,平距 from 中值,測站 WHERE 測站.ID=中值.ID and 測站.文件號=1")‘讀取測站觀測信息。

RS .Fields(2).Value = Cz And RS.Fields(1).Value = fx And Abs(RS.Fields(4).Value - Zjl) > PingJu ‘對向距離檢查。

Abs(Val(RS.Fields(3).Value) + Zgc) > GC * Sqr(Val(RS.Fields(4).Value) * 0.001) ‘對向高差檢查。

4.3平差文件、導線觀測手簿

(1)平差文件

Set RS = db.OpenRecordset("select測站.ID,測站名, 方向名,水平角,高差,平距 from 中值,測站 WHERE 測站.ID=中值.ID")‘讀取水平角、高差、平距信息。

RS.MoveFirst

Do Until RS.EOF

‘對每行記錄進行分解后,存在相應的字段。

RS.MoveNext

Loop

Shell App.Path & "NASEW.EXE " & FILSAVE, vbNormalFocus '調(diào)用平差軟件直接打開平差文件

(2) 導線觀測手簿

Set wdApp = CreateObject("Word.Application")‘調(diào)用Word程序

Set wdbok = wdApp.Documents.Open(App.Path & "圖根導線觀測手簿.doc")‘調(diào)用模板文件

Set wdBook = wdApp.Documents.Add‘新建word文件

Set RS = db.OpenRecordset("select測站.ID,測站名, 儀器高, 方向名, 水平角盤左, 水平角盤右, RC, 方向值, 水平角中數(shù), 垂直角盤左, 垂直角盤右, 指標差, 垂直角, 覘標高, 邊長讀數(shù)1, 讀數(shù)2, 邊長值 from 方向點,測站 WHERE 測站.ID=方向點.ID and 測站.文件號=1" ) ‘導線觀測手簿的信息

RS.MoveFirst

Do Until RS.EOF

With wdBook.Tables(TabCount)

.Cell(i, 2).Range.InsertAfter Format(RS.Fields(3).Value, ">") '方向名

.Cell(i, 3).Range.InsertAfter Replace(Format(RS.Fields(4).Value, "###0.00 00"), ".", " ") '水平角盤左

………將讀取的數(shù)據(jù)填入到WORD表格中

End With

RS.MoveNext

Loop

wdBook.Save保存文件

wdBook.Close關閉文件

wdbok.Close關閉模板文件

wdApp.Quit退出Word程序

5 結束語

全站儀內(nèi)外業(yè)一體化圖根導線測量減少了聽、寫、計算、錄入等人工環(huán)節(jié),避免了因為人工記錄或錄入造成的粗差,此種作業(yè)方法成本低,簡便易行,作業(yè)成果準確可靠,大大的減輕測量人員的勞動強度,更好的提高測繪工作效率和產(chǎn)品質(zhì)量。

參考文獻:

[1] 趙學慧,趙瑋.Visual Basic 程序開發(fā)完整實例教程.北京.海洋出版社,2003.

[2] 王成春,蕭雅云.Access 2003 VBA程序設計.北京.中國鐵道出版社,2005.

猜你喜歡
全站儀邊長導線
淺析110kV到500kV架空輸電線路中新型導線的應用
魔術存錢罐
大樓在移動
全站儀在金屬礦地面控制測量中的應用探討
全站儀在工程放線驗線中的應用分析
全球首條大截面超高壓碳纖維導線試驗成功
淺談全站儀在建筑測量質(zhì)量控制中的應用研究
一個關于三角形邊長的不等式鏈
廣州SCS?。牵玻埃埃唇邮杖緝x數(shù)據(jù)過程的相異性分析
2009年高考物理專項訓練題八 穩(wěn)恒電流
鄢陵县| 台南市| 大邑县| 乌拉特后旗| 三亚市| 嵊泗县| 刚察县| 岳阳县| 安新县| 洱源县| 绥滨县| 茂名市| 英吉沙县| 五莲县| 高要市| 会理县| 柞水县| 中超| 枝江市| 梧州市| 新化县| 韶关市| 洛川县| 梁河县| 宁夏| 融水| 禄劝| 武山县| 汉源县| 长泰县| 霍城县| 抚顺市| 安仁县| 西城区| 固镇县| 宜宾市| 峨边| 临安市| 三明市| 江山市| 玉田县|