張永琦
(河南省煤田地質局 物探測量隊,河南 鄭州 450009)
瞬變電磁法是較為廣范使用的一種地球物理方法,目前的各種瞬變電磁法處理軟件在快速整理并輸出野外瞬變電磁法衰減曲線還很薄弱,野外技術人員要花費大量的時間和精力利用grapher 繪制電壓衰減曲線,但存在制圖比較繁瑣,用時較長的問題,且容易出錯,為了解決這些問題特利用Visual Basic6.0 及Grapher 軟件的ActiveX Automation 技術進行二次開發編寫了電壓衰減曲線快速生成程序。本程序批量生成電壓衰減曲線,節約了技術人員的時間和精力,提高了工作效率。
ActiveX 自動化技術是面向對象的解釋型開發工具,在廣義上是指微軟公司的整個COM (Component Object Model,組件對象模型)架構,但是現在通常用來稱呼基于標準COM 接口來實現對象連接與嵌入的ActiveX 控件。該技術通過應用程序對外界提供面向某一特定任務并提供完成該任務的完整功能的Automation 對象實現應用程序間的對象共享。[1]

圖1 對象模型樹
Grapher 是Golden Software 公司研制的二維和三維科技繪圖軟件,其操作簡單,能導入多種格式的數據文件,并能對數據進行各種復雜計算,是地質工程專業常用的繪圖軟件。從Grapher3.0 版開始提供了對ActiveX Automation 技術方法的支持,為通過程序控制Grapher自動繪圖提供了編程接口,使得用戶可以通過可視化編程工具(如Visual Basic、Delphi、VBA 等)對Grapher 進行二次開發,用戶可利用ActiveX Automation 技術操縱Grapher 的服務器,通過簡單的編程將其功能集成到客戶應用程序中,快速實現其強大的繪圖功能Grapher 采用層次化的方式來組織其自動化對象,其中應用程序對象(ApplicationObject)處于最高層,所有其他對象都要直接或間接通過應用程序對象來獲得,各個對象的獲得都需一層一級地進行。它的主要Automation 對象模型樹如圖1 所示 在本文中,主要的研究對象就是二維折線圖AutoLinePlot)和二維步階圖(AutoStepPlot)對象及其屬性和方法。
由于ActiveX 不依賴于語言,所以傳統的開發工具基本上都能構筑、配備ActiveX 控件,最常用的有Delphi、Po werBuilder 以及Visual Basic、Visual C++、Visual J++等,而VB 因其簡單易學,功能強大,成為目前眾多開發者的第一選擇。
通過對ActiveX Automation 技術的介紹可知,VB 要想使用Grapher ActiveX Automation 技術就必須首先要創建一個Grapher 的Application對象,然后通過各種集合對象對各自的派生對象按各種層次結構逐層操縱調用,進而實現自己的繪圖操作在Documents 集合對象中的Document 對象代表了當前的圖形文件,該對象下面又有AutoDocWindows(文檔集合對象)AutoShapes(圖形集合對象)AutoSelection(選擇集合對象)等子對象,這些子對象又產生下一級的對象,如AutoGraph、AutoMText 等,對應著Grapher 中的各種圖元命令,分別可以在文檔空間中創建各種圖元。首先創建一個Grapher Application 對象實例句柄,使Grapher 可見,并為Grapher 添加一個新文檔借助Plot 對象的Shapes 屬性及其派生對象執行用戶具體的繪圖操作功能。通過Shapes派生對象Axes 對坐標軸進行格式操作,通過Shapes 派生對象Axes 對坐標軸進行自定義標簽操作。

‘設置衰減曲線圖的范圍

‘設置符號樣式及大小

’設置X、Y 坐標軸范圍

’添加坐標軸標題

程序具有以下特點:繪制過程完全實現了自動化和批量化,以往需要花費數個小時繪制的圖件,現在僅需要幾秒即可繪制完畢,并且格式規范,可以使技術人員有更多的時間分析和研究地質資料。程序界面如圖2。

圖2 程序界面
繪圖過程自動調節比例及幅面布局;生成的矢量圖樣文檔可以任意縮放,不會失真;生成圖樣后,如有特殊需要可以進一步手工編輯軟件在實際應用中發揮了很大的效用。程序運行結果如圖3。

圖3 程序運行結果
利用Visual Basic 與Grapher 軟件提供的ActiveX Automation 技術進行二次開發,實現電壓衰減曲線繪圖的自動化和批量化,能夠把地質人員從繁瑣、機械的繪制電壓衰減曲線工作中解放出來,提高工作的效率,能夠把更多的時間和精力投入到數據處理及解釋工作中。
[1]基于VB.Net 的ActiveX 技術在地質繪圖中的應用[J].計算機論文.
[2]韓曉峰.利用Grapher 二次開發繪制井組綜合曲線[J].勝利油田職工大學學報.
[3]楊朝輝,唐峰平.利用Grapher 二次開發技術繪制地面沉降過程曲線圖[J].北京測繪.