王万邦
【摘 要】AutoCAD在工程绘图软件中应用广泛,其留有二次开发接口。文章通过Visual Basic二次开发AutoCAD,用于地震测量数据平面展点检查及地形剖面绘制,具有一定的意义。
【关键词】地震勘探;Visual Basic;二次开发;平面展点;剖面图
一、概述
(一)AutoCAD简介
AutoCAD工程图形处理软件,自1982年由Autodesk开发面世以来,以其完善的图形功能、良好的用户界面、简但易学的特点受到广大工程技术人员的青睐,目前用户遍及150多个国家和地区,我国在建筑、机加工、地质等行业应用广泛,因此AutoCAD及其图型格式已成为事实上的国际工业标准。AutoCAD之所以得到如此广泛的应用,其中的一个原因是它开放的结构体系,即用户可以根据自已的需要对其进行二次开发。
用Visual Basic进行AutoCAD二次开发,是AutoCAD R14以后的一种新技术,我们可以用Visual Basic语言编程,将AutoCAD当成Visual Basic程序中的一个图形窗口,对其进行打开、绘图、编缉、打印、关闭等操作,而且简但易学,功能强大,不论是进行理论研究,还是开发面向工程实际的应用软件均是比较有效的手段和方法,其实南方测绘的CASS软件就是基于AutoCAD二次开发的。
(二)Visual Basic简介
Visual Basic为图形用户界面的Basic,它在原有Basic語言的基础上进一步发展,至今包含了数百条语句、函数及关健词,其中很多和Windows GUI有直接关系。Visual Basic不仅是编程语言,而是一个编程系统,Microsoft Excel、AutoCAD和Windows 等其它应用程序都使用这一语言,可以实现其它任何Windows编程语言的功能,其ActiveX控件、函数应用方便且简但易学,因此应用十分广泛。
二、开发方法
现实世界的任何一个物体均可用三维坐标表示,地震勘探测线也不例外。通过分析南方测绘公司的测量原始数据,利用AutoCAD Circle 等功能将测线坐标自动批量展在平面图上即实现了测量数据的检查成图工作。
(一)数据分析
采用南方测绘公司生产的RTK进行测线放样,其原始数据文件采用后缀为DAT的顺序存储形式,可以用Windows记事本(notepad.exe)打开,数据组成如图1所示:
可以看出每行数据由“,”号分隔的5个数据组成,现以第一列为例进行介绍:
L1-8580为测线桩号,字符型数据;8580.06为距离,361668.849为东坐标,4123880.957为北坐标,2576.689为标高,均为双精度型数据。
(二)方法及控件
AutoCAD 的Circle、Text、Layer、Line、Spline方法
Visual Basic控件:Microsoft CommonDialog Control,Command Button
1.平面展点
为了将原始数据展在平面上,采用了AutoCAD 的Circle方法,圆心的三维坐标为东坐标、北坐标和标高(因AutoCAD的x、y坐标与测量的东坐标与北坐标相对应);Text方法展放桩号,为左对正方式,其位置坐标与圆心相同。
2.剖面
地形剖面在地质行业有广泛的用途,通过绘制地形剖面可以检查地震测线上检波点或炮点标高是否有“飞”点现象,因在地震勘探中检波点、炮点标高在地震资料处理中静较正时至关重要,在高精度地震勘探中更是如此。
剖面方法与平面类似,只是x坐标采用距离,y坐标采用标高而已。
具体用AutoCAD的Spline方法将所有桩号展在图上,再作修饰即可。
三、软件界面及成果
(一)软件流程及部分源程序
1.软件流程
2.平面展点部分源程序
……
With CommonDialog1
.DialogTitle = “选择文文章件”
.Filter = “文文章件(*.dat)|*.dat|所有文件(*.*)|*.*”
.InitDir = “C:\”
.ShowOpen
End With
heigh8 = 3
Open CommonDialog1.FileName For Input As #1
Do While Not EOF(1)
Input #1,name,attrib,x,y,h
TextBox1.Value = name
TextBox2.Value = attrib
TextBox3.Value = x
TextBox4.Value = y
TextBox5.Value = h
centerpoint(0)=x:centerpoint(1)=y:centerpoint(2)=h
text9String = name
Set newLayer = ThisDrawing.Layers.Add(“CDP线”)
ThisDrawing.ActiveLayer = newLayer
newLayer.color = acRed
Set newLayer = ThisDrawing.Layers.Add(“CDP点”)
ThisDrawing.ActiveLayer = newLayer
newLayer.color = acYellow
Set circleObj=ThisDrawing.ModelSpace.AddCircle(centerpoint,radius1)
Set newLayer = ThisDrawing.Layers.Add(“CDP点桩号”)
ThisDrawing.ActiveLayer = newLayer
newLayer.color = acGreen
Set text9Obj=ThisDrawing.ModelSpace.AddText(text9String,centerpoint,height8)
Loop
Close #1
Unload Me
End sub
(二)成果
经现场对某三维地震勘探测线成果展点测试,成果见图3所示,其中红色文字代表桩号,蓝色小圆代表桩号三维坐标位置,经检查与原始数据完全对应,原始数据满足规范要求,因此该软件基本可以满足平面展点的要求。
四、结语
地震勘探目前向高精度,构造复杂地区迈进,测线放样作为野外施工的基础、资料处理中静校正的必要条件,因此测量数据的准确性显得比较重要。文章通过分析南方测绘GPS原始数据格式,运用Visual Basic二次开发Autocad,实现了测量数据检查及绘图工作,快速高效,在地震勘探数据成图方面有一定的现实意义。另外,本人开发了二维地震观测系统图的绘制软件,二次开发excel 实现了文件批量修改等,提高了效率。
参考文献
[1] 张晋西.Visual Basic与 Autocad二次开发[M].北京:清华大学出版社,2002.
[2] Microsoft Corporation 著,微软(中国)有限公司译.Visual Basic 6.0中文版程序指南[M].1998.
[3] 陆基孟.地震勘探原理[M].东营:中国石油大学出版社,2004.