郭丽霞 张卫庭
(中铁工程设计咨询集团济南设计院, 山东济南 250022)
随着计算机技术在各个领域和行业的广泛应用,生产力和工作效率得以明显提高。就工程测量专业来说,实现计算机与测绘仪器之间数据的实时传输、内外业一体化成图已成为可能。目前这项技术已经被一些仪器厂商或软件公司开发应用,但是成图软件种类繁多,模式化较强,给图形的后续兼容性处理带来了诸多不便。AutoCAD图形处理软件在机械、电子、工程建筑等领域中的应用普遍,在AutoCAD平台下开发测图软件,有其独特的优越性。
要想实现测图内外业一体化,测量仪器与电脑之间的数据传输是要解决的第一个问题。仪器不同,其程序代码也略有不同,但基本的思路是一致的。本文就Leica全站仪与计算机之间的数据传输做如下阐述。
RS-232串行通讯端口是电脑上配备的标准端口,利用Leica仪器公司提供的数据线将全站仪与电脑的RS-232串口(即COM端口)相连。
启动AutoCAD平台,在其VB编辑器中建立窗体并添加接收数据的文本控件和串行通讯组件MSComm,其具体界面设计如图1所示。
图1 界面设计
设置好通讯控件属性和交握协议后,在接收全站仪数据的命令按钮代码中加入如下代码:
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〞’设置通讯参数
MSComm1.InBufferCount=0 ’清空输入缓冲区
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
以上代码仅针对水平角的接收,其他竖直角和斜距的接收大同小异。当然随着编程语言的不同,数据传输实现的程序代码也各有差别,如利用Leica公司的类Basic语言可简单实现数据的自动测量及读取,其大致语法如下:
自动测量:
Rem TCR 1101
Open”2400,E,7,1”
Print ”GET/MW121W122W131”CHR (13)+CHR(10)
Input 90
Using ”----1112222----3334444----55555666” ’读取成图所需数据
End
以上程序代码实现了数据的传输与接收,下一步便是数据的处理。
当全站仪所测竖直角、水平角、斜距读入接收框后,并可将数据转换为点位坐标在AutoCAD界面上展绘,当然在这之前要读入测站设置数据,其主要代码如下:
确定点的三维坐标:
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界面上展点
Call ThisDrawing.ModelSpace.AddPoint(pt2)
End If
在展点成图时该程序依据输入的国标码,读取Access数据库实现线形和符号的生成,这里就不在阐述。外业数据形成图形后,内业的整理更为灵活,可以利用AutoCAD软件本身具备的强大的图形编辑功能进行编辑,或者自己开发一些编辑工具和菜单载入AutoCAD平台中,这些都比较容易实现。
本文主要针对LeicaTCR1101系列全站仪与计算机的数据传输以及所得数据在AutoCAD平台下的处理做了简单论述和部分程序代码的提供,为内外业一体化测图软件的开发起到参考作用。要想开发完整且通用性较强的测图软件,需要在具体的开发过程中做许多的细节工作。在AutoCAD平台下开发的测图软件,其适应性会越来越强,使用范围会越来越广,相信有越来越多的软件开发公司正逐步向这一方面靠拢。
[1] 李凤华.AutoCAD 2002/2000 VAB开发指南[M].北京:清华大学出版社,2001
[2] 范逸之.Visual Basic与RS232串行通讯控制[M].北京:中国青年出版社,2000
[3] Curtis Smith Michael Amwndsen. Visual Basic数据库编程6.0[M].北京:清华大学出版社,1999
[4] 品辰工作室.Access2000VAB开发实例指南[M].北京:电子工业出版社,1998
[5] 王兆祥.铁道工程测量[M].北京:中国铁道出版社,1998
[6] 张宏林,陆 华,王思学.Visual Basi编程疑难详解[M].北京:人民邮电出版社,1995