郭麗霞 張衛(wèi)庭
(中鐵工程設(shè)計(jì)咨詢集團(tuán)濟(jì)南設(shè)計(jì)院, 山東濟(jì)南 250022)
隨著計(jì)算機(jī)技術(shù)在各個(gè)領(lǐng)域和行業(yè)的廣泛應(yīng)用,生產(chǎn)力和工作效率得以明顯提高。就工程測量專業(yè)來說,實(shí)現(xiàn)計(jì)算機(jī)與測繪儀器之間數(shù)據(jù)的實(shí)時(shí)傳輸、內(nèi)外業(yè)一體化成圖已成為可能。目前這項(xiàng)技術(shù)已經(jīng)被一些儀器廠商或軟件公司開發(fā)應(yīng)用,但是成圖軟件種類繁多,模式化較強(qiáng),給圖形的后續(xù)兼容性處理帶來了諸多不便。AutoCAD圖形處理軟件在機(jī)械、電子、工程建筑等領(lǐng)域中的應(yīng)用普遍,在AutoCAD平臺(tái)下開發(fā)測圖軟件,有其獨(dú)特的優(yōu)越性。
要想實(shí)現(xiàn)測圖內(nèi)外業(yè)一體化,測量儀器與電腦之間的數(shù)據(jù)傳輸是要解決的第一個(gè)問題。儀器不同,其程序代碼也略有不同,但基本的思路是一致的。本文就Leica全站儀與計(jì)算機(jī)之間的數(shù)據(jù)傳輸做如下闡述。
RS-232串行通訊端口是電腦上配備的標(biāo)準(zhǔn)端口,利用Leica儀器公司提供的數(shù)據(jù)線將全站儀與電腦的RS-232串口(即COM端口)相連。
啟動(dòng)AutoCAD平臺(tái),在其VB編輯器中建立窗體并添加接收數(shù)據(jù)的文本控件和串行通訊組件MSComm,其具體界面設(shè)計(jì)如圖1所示。
圖1 界面設(shè)計(jì)
設(shè)置好通訊控件屬性和交握協(xié)議后,在接收全站儀數(shù)據(jù)的命令按鈕代碼中加入如下代碼:
Private Sub Command1-Click()
Dim AA Aa String
Dim K As Integer
INSTRING$=〞〞
On Error Resume Next
MSComm1.CommPort=1
MSComm1.PortOpen=Ture ’打開通訊端口
MSComm1.Settings=〞2400,E,7.1〞’設(shè)置通訊參數(shù)
MSComm1.InBufferCount=0 ’清空輸入緩沖區(qū)
MSComm1.Output=〞? 〞+Chr(13)+Chr(10)
INSTRING=INSTRING+AA
K=InStr(1,INSTRING,POINTID,vbTextCompare)’截取所得字符
If K <> 0 Then
Text1.Text=Mid(INSTRING, K+7,7)
End If
MSComm1.Output=”?”+Chr(13)+Chr(10)
MSComm1.PortOpen=False
End Sub
以上代碼僅針對(duì)水平角的接收,其他豎直角和斜距的接收大同小異。當(dāng)然隨著編程語言的不同,數(shù)據(jù)傳輸實(shí)現(xiàn)的程序代碼也各有差別,如利用Leica公司的類Basic語言可簡單實(shí)現(xiàn)數(shù)據(jù)的自動(dòng)測量及讀取,其大致語法如下:
自動(dòng)測量:
Rem TCR 1101
Open”2400,E,7,1”
Print ”GET/MW121W122W131”CHR (13)+CHR(10)
Input 90
Using ”----1112222----3334444----55555666” ’讀取成圖所需數(shù)據(jù)
End
以上程序代碼實(shí)現(xiàn)了數(shù)據(jù)的傳輸與接收,下一步便是數(shù)據(jù)的處理。
當(dāng)全站儀所測豎直角、水平角、斜距讀入接收框后,并可將數(shù)據(jù)轉(zhuǎn)換為點(diǎn)位坐標(biāo)在AutoCAD界面上展繪,當(dāng)然在這之前要讀入測站設(shè)置數(shù)據(jù),其主要代碼如下:
確定點(diǎn)的三維坐標(biāo):
Pt2(0)=TextBox3.Text * Sin(3.1415926 * TextBox2.Text / 180) * Sin(fan)+pt1(0)
Pt2(1)=TextBox3.Text * Sin(3.1415926 * TextBox2.Text / 180) * Cos(fan)+pt1(1)
Pt2(2)=TextBox3.Text * Cos(3.1415926 * TextBox2.Text / 180)+I-TextBox7.Text+pt1(2)
If gao-k.Value=-1 then pt2(2)=0
TextBox4.Text=pt2(0)
TextBox5.Text=pt2(1)
TextBox6.Text=pt2(2)
’在AutoCAD界面上展點(diǎn)
Call ThisDrawing.ModelSpace.AddPoint(pt2)
End If
在展點(diǎn)成圖時(shí)該程序依據(jù)輸入的國標(biāo)碼,讀取Access數(shù)據(jù)庫實(shí)現(xiàn)線形和符號(hào)的生成,這里就不在闡述。外業(yè)數(shù)據(jù)形成圖形后,內(nèi)業(yè)的整理更為靈活,可以利用AutoCAD軟件本身具備的強(qiáng)大的圖形編輯功能進(jìn)行編輯,或者自己開發(fā)一些編輯工具和菜單載入AutoCAD平臺(tái)中,這些都比較容易實(shí)現(xiàn)。
本文主要針對(duì)LeicaTCR1101系列全站儀與計(jì)算機(jī)的數(shù)據(jù)傳輸以及所得數(shù)據(jù)在AutoCAD平臺(tái)下的處理做了簡單論述和部分程序代碼的提供,為內(nèi)外業(yè)一體化測圖軟件的開發(fā)起到參考作用。要想開發(fā)完整且通用性較強(qiáng)的測圖軟件,需要在具體的開發(fā)過程中做許多的細(xì)節(jié)工作。在AutoCAD平臺(tái)下開發(fā)的測圖軟件,其適應(yīng)性會(huì)越來越強(qiáng),使用范圍會(huì)越來越廣,相信有越來越多的軟件開發(fā)公司正逐步向這一方面靠攏。
[1] 李鳳華.AutoCAD 2002/2000 VAB開發(fā)指南[M].北京:清華大學(xué)出版社,2001
[2] 范逸之.Visual Basic與RS232串行通訊控制[M].北京:中國青年出版社,2000
[3] Curtis Smith Michael Amwndsen. Visual Basic數(shù)據(jù)庫編程6.0[M].北京:清華大學(xué)出版社,1999
[4] 品辰工作室.Access2000VAB開發(fā)實(shí)例指南[M].北京:電子工業(yè)出版社,1998
[5] 王兆祥.鐵道工程測量[M].北京:中國鐵道出版社,1998
[6] 張宏林,陸 華,王思學(xué).Visual Basi編程疑難詳解[M].北京:人民郵電出版社,1995