張永琦
(河南省煤田地質(zhì)局 物探測(cè)量隊(duì),河南 鄭州 450009)
瞬變電磁法是較為廣范使用的一種地球物理方法,目前的各種瞬變電磁法處理軟件在快速整理并輸出野外瞬變電磁法衰減曲線還很薄弱,野外技術(shù)人員要花費(fèi)大量的時(shí)間和精力利用grapher 繪制電壓衰減曲線,但存在制圖比較繁瑣,用時(shí)較長(zhǎng)的問(wèn)題,且容易出錯(cuò),為了解決這些問(wèn)題特利用Visual Basic6.0 及Grapher 軟件的ActiveX Automation 技術(shù)進(jìn)行二次開(kāi)發(fā)編寫(xiě)了電壓衰減曲線快速生成程序。本程序批量生成電壓衰減曲線,節(jié)約了技術(shù)人員的時(shí)間和精力,提高了工作效率。
ActiveX 自動(dòng)化技術(shù)是面向?qū)ο蟮慕忉屝烷_(kāi)發(fā)工具,在廣義上是指微軟公司的整個(gè)COM (Component Object Model,組件對(duì)象模型)架構(gòu),但是現(xiàn)在通常用來(lái)稱(chēng)呼基于標(biāo)準(zhǔn)COM 接口來(lái)實(shí)現(xiàn)對(duì)象連接與嵌入的ActiveX 控件。該技術(shù)通過(guò)應(yīng)用程序?qū)ν饨缣峁┟嫦蚰骋惶囟ㄈ蝿?wù)并提供完成該任務(wù)的完整功能的Automation 對(duì)象實(shí)現(xiàn)應(yīng)用程序間的對(duì)象共享。[1]
圖1 對(duì)象模型樹(shù)
Grapher 是Golden Software 公司研制的二維和三維科技繪圖軟件,其操作簡(jiǎn)單,能導(dǎo)入多種格式的數(shù)據(jù)文件,并能對(duì)數(shù)據(jù)進(jìn)行各種復(fù)雜計(jì)算,是地質(zhì)工程專(zhuān)業(yè)常用的繪圖軟件。從Grapher3.0 版開(kāi)始提供了對(duì)ActiveX Automation 技術(shù)方法的支持,為通過(guò)程序控制Grapher自動(dòng)繪圖提供了編程接口,使得用戶可以通過(guò)可視化編程工具(如Visual Basic、Delphi、VBA 等)對(duì)Grapher 進(jìn)行二次開(kāi)發(fā),用戶可利用ActiveX Automation 技術(shù)操縱Grapher 的服務(wù)器,通過(guò)簡(jiǎn)單的編程將其功能集成到客戶應(yīng)用程序中,快速實(shí)現(xiàn)其強(qiáng)大的繪圖功能Grapher 采用層次化的方式來(lái)組織其自動(dòng)化對(duì)象,其中應(yīng)用程序?qū)ο?ApplicationObject)處于最高層,所有其他對(duì)象都要直接或間接通過(guò)應(yīng)用程序?qū)ο髞?lái)獲得,各個(gè)對(duì)象的獲得都需一層一級(jí)地進(jìn)行。它的主要Automation 對(duì)象模型樹(shù)如圖1 所示 在本文中,主要的研究對(duì)象就是二維折線圖AutoLinePlot)和二維步階圖(AutoStepPlot)對(duì)象及其屬性和方法。
由于ActiveX 不依賴(lài)于語(yǔ)言,所以傳統(tǒng)的開(kāi)發(fā)工具基本上都能構(gòu)筑、配備ActiveX 控件,最常用的有Delphi、Po werBuilder 以及Visual Basic、Visual C++、Visual J++等,而VB 因其簡(jiǎn)單易學(xué),功能強(qiáng)大,成為目前眾多開(kāi)發(fā)者的第一選擇。
通過(guò)對(duì)ActiveX Automation 技術(shù)的介紹可知,VB 要想使用Grapher ActiveX Automation 技術(shù)就必須首先要?jiǎng)?chuàng)建一個(gè)Grapher 的Application對(duì)象,然后通過(guò)各種集合對(duì)象對(duì)各自的派生對(duì)象按各種層次結(jié)構(gòu)逐層操縱調(diào)用,進(jìn)而實(shí)現(xiàn)自己的繪圖操作在Documents 集合對(duì)象中的Document 對(duì)象代表了當(dāng)前的圖形文件,該對(duì)象下面又有AutoDocWindows(文檔集合對(duì)象)AutoShapes(圖形集合對(duì)象)AutoSelection(選擇集合對(duì)象)等子對(duì)象,這些子對(duì)象又產(chǎn)生下一級(jí)的對(duì)象,如AutoGraph、AutoMText 等,對(duì)應(yīng)著Grapher 中的各種圖元命令,分別可以在文檔空間中創(chuàng)建各種圖元。首先創(chuàng)建一個(gè)Grapher Application 對(duì)象實(shí)例句柄,使Grapher 可見(jiàn),并為Grapher 添加一個(gè)新文檔借助Plot 對(duì)象的Shapes 屬性及其派生對(duì)象執(zhí)行用戶具體的繪圖操作功能。通過(guò)Shapes派生對(duì)象Axes 對(duì)坐標(biāo)軸進(jìn)行格式操作,通過(guò)Shapes 派生對(duì)象Axes 對(duì)坐標(biāo)軸進(jìn)行自定義標(biāo)簽操作。
‘設(shè)置衰減曲線圖的范圍
‘設(shè)置符號(hào)樣式及大小
’設(shè)置X、Y 坐標(biāo)軸范圍
’添加坐標(biāo)軸標(biāo)題
程序具有以下特點(diǎn):繪制過(guò)程完全實(shí)現(xiàn)了自動(dòng)化和批量化,以往需要花費(fèi)數(shù)個(gè)小時(shí)繪制的圖件,現(xiàn)在僅需要幾秒即可繪制完畢,并且格式規(guī)范,可以使技術(shù)人員有更多的時(shí)間分析和研究地質(zhì)資料。程序界面如圖2。
圖2 程序界面
繪圖過(guò)程自動(dòng)調(diào)節(jié)比例及幅面布局;生成的矢量圖樣文檔可以任意縮放,不會(huì)失真;生成圖樣后,如有特殊需要可以進(jìn)一步手工編輯軟件在實(shí)際應(yīng)用中發(fā)揮了很大的效用。程序運(yùn)行結(jié)果如圖3。
圖3 程序運(yùn)行結(jié)果
利用Visual Basic 與Grapher 軟件提供的ActiveX Automation 技術(shù)進(jìn)行二次開(kāi)發(fā),實(shí)現(xiàn)電壓衰減曲線繪圖的自動(dòng)化和批量化,能夠把地質(zhì)人員從繁瑣、機(jī)械的繪制電壓衰減曲線工作中解放出來(lái),提高工作的效率,能夠把更多的時(shí)間和精力投入到數(shù)據(jù)處理及解釋工作中。
[1]基于VB.Net 的ActiveX 技術(shù)在地質(zhì)繪圖中的應(yīng)用[J].計(jì)算機(jī)論文.
[2]韓曉峰.利用Grapher 二次開(kāi)發(fā)繪制井組綜合曲線[J].勝利油田職工大學(xué)學(xué)報(bào).
[3]楊朝輝,唐峰平.利用Grapher 二次開(kāi)發(fā)技術(shù)繪制地面沉降過(guò)程曲線圖[J].北京測(cè)繪.