王萬邦
【摘 要】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.