2023年11月30日发(作者:)

快速绘制瞬变电磁电压衰减曲线实现

0 引言

瞬变电磁法是较为广范使用的一种地球物理方法,目前的各

种瞬变电磁法处理软件在快速整理并输出野外瞬变电磁法衰减

曲线还很薄弱,野外技术人员要花费大量的时间和精力利用

grapher绘制电压衰减曲线,但存在制图比较繁琐,用时较长的

问题,且容易出错,为了解决这些问题特利用Visual Basic6.0

Grapher软件的ActiveX Automation技术进行二次开发编写

了电压衰减曲线快速生成程序。本程序批量生成电压衰减曲线,

节约了技术人员的时间和精力,提高了工作效率。

1 ActiveX 自动化技术

ActiveX 自动化技术是面向对象的解释型开发工具,在广义

上是指微软公司的整个COMComponent Object Model,组件对

象模型)架构,但是现在通常用来称呼基于标准COM接口来实现

对象连接与嵌入的ActiveX控件。该技术通过应用程序对外界提

供面向某一特定任务并提供完成该任务的完整功能的

Automation对象实现应用程序间的对象共享。[1]

GrapherGolden Software公司研制的二维和三维科技绘

图软件,其操作简单,能导入多种格式的数据文件,并能对数据

进行各种复杂计算,是地质工程专业常用的绘图软件。从

Grapher3.0版开始提供了对ActiveX Automation技术方法的支

持,为通过程序控制Grapher自动绘图提供了编程接口,使得用

户可以通过可视化编程工具(如Visual BasicDelphiVBA等)

Grapher进行二次开发,用户可利用ActiveX Automation

术操纵Grapher的服务器,通过简单的编程将其功能集成到客户

应用程序中,快速实现其强大的绘图功能Grapher采用层次化的

方式来组织其自动化对象,其中应用程序对象

ApplicationObject)处于最高层,所有其他对象都要直接或

间接通过应用程序对象来获得,各个对象的获得都需一层一级地

进行。它的主要Automation对象模型树如图1所示 在本文中,

主要的研究对象就是二维折线图AutoLinePlot)和二维步阶图

AutoStepPlot)对象及其属性和方法。

由于ActiveX不依赖于语言,所以传统的开发工具基本上都

能构筑、配备ActiveX控件,最常用的有DelphiPo werBuilder

以及Visual BasicVisual C++Visual J++等,而VB因其简

单易学,功能强大,成为目前众多开发者的第一选择。

2 实现方法及部分代码

2.1 实现方法

通过对ActiveX Automation技术的介绍可知,VB要想使用

Grapher ActiveX Automation技术就必须首先要创建一个

GrapherApplication对象,然后通过各种集合对象对各自的

派生对象按各种层次结构逐层操纵调用,进而实现自己的绘图操

作在Documents 集合对象中的Document对象代表了当前的图形

文件,该对象下面又有AutoDocWindows(文档集合对象)

AutoShapes(图形集合对象)AutoSelection(选择集合对象)

等子对象,这些子对象又产生下一级的对象,如AutoGraph

AutoMText 等,对应着Grapher中的各种图元命令,分别可以在

文档空间中创建各种图元。首先创建一个Grapher Application

对象实例句柄,使Grapher可见,并为Grapher添加一个新文档

借助Plot对象的Shapes属性及其派生对象执行用户具体的绘图

操作功能。通过Shapes派生对象Axes对坐标轴进行格式操作,

通过Shapes派生对象Axes对坐标轴进行自定义标签操作。

2.2 部分代码

3 程序界面及应用示例

3.1 程序界面

程序具有以下特点:绘制过程完全实现了自动化和批量化,

以往需要花费数个小时绘制的图件,现在仅需要几秒即可绘制完

毕,并且格式规范,可以使技术人员有更多的时间分析和研究地

质资料。程序界面如图2

3.2 程序运行结果

4 结论

利用Visual BasicGrapher软件提供的ActiveX

Automation技术进行二次开发,实现电压衰减曲线绘图的自动

化和批量化,能够把地质人员从繁琐、机械的绘制电压衰减曲线

工作中解放出来,提高工作的效率,能够把更多的时间和精力投

入到数据处理及解释工作中。