2023年11月30日发(作者:)
快速绘制瞬变电磁电压衰减曲线实现
0 引言
瞬变电磁法是较为广范使用的一种地球物理方法,目前的各
种瞬变电磁法处理软件在快速整理并输出野外瞬变电磁法衰减
曲线还很薄弱,野外技术人员要花费大量的时间和精力利用
grapher绘制电压衰减曲线,但存在制图比较繁琐,用时较长的
问题,且容易出错,为了解决这些问题特利用Visual Basic6.0
及Grapher软件的ActiveX Automation技术进行二次开发编写
了电压衰减曲线快速生成程序。本程序批量生成电压衰减曲线,
节约了技术人员的时间和精力,提高了工作效率。
1 ActiveX 自动化技术
ActiveX 自动化技术是面向对象的解释型开发工具,在广义
上是指微软公司的整个COM(Component Object Model,组件对
象模型)架构,但是现在通常用来称呼基于标准COM接口来实现
对象连接与嵌入的ActiveX控件。该技术通过应用程序对外界提
供面向某一特定任务并提供完成该任务的完整功能的
Automation对象实现应用程序间的对象共享。[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因其简
单易学,功能强大,成为目前众多开发者的第一选择。
2 实现方法及部分代码
2.1 实现方法
通过对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对坐标轴进行自定义标签操作。
2.2 部分代码
3 程序界面及应用示例
3.1 程序界面
程序具有以下特点:绘制过程完全实现了自动化和批量化,
以往需要花费数个小时绘制的图件,现在仅需要几秒即可绘制完
毕,并且格式规范,可以使技术人员有更多的时间分析和研究地
质资料。程序界面如图2。
3.2 程序运行结果
4 结论
利用Visual Basic与Grapher软件提供的ActiveX
Automation技术进行二次开发,实现电压衰减曲线绘图的自动
化和批量化,能够把地质人员从繁琐、机械的绘制电压衰减曲线
工作中解放出来,提高工作的效率,能够把更多的时间和精力投
入到数据处理及解释工作中。
【


发布评论