APP下载

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

2014-12-25张永琦

科技视界 2014年22期
关键词:坐标轴二次开发绘图

张永琦

(河南省煤田地质局 物探测量队,河南 郑州 450009)

0 引言

瞬变电磁法是较为广范使用的一种地球物理方法,目前的各种瞬变电磁法处理软件在快速整理并输出野外瞬变电磁法衰减曲线还很薄弱,野外技术人员要花费大量的时间和精力利用grapher 绘制电压衰减曲线,但存在制图比较繁琐,用时较长的问题,且容易出错,为了解决这些问题特利用Visual Basic6.0 及Grapher 软件的ActiveX Automation 技术进行二次开发编写了电压衰减曲线快速生成程序。本程序批量生成电压衰减曲线,节约了技术人员的时间和精力,提高了工作效率。

1 ActiveX 自动化技术

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 因其简单易学,功能强大,成为目前众多开发者的第一选择。

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 部分代码

‘设置衰减曲线图的范围

‘设置符号样式及大小

’设置X、Y 坐标轴范围

’添加坐标轴标题

3 程序界面及应用示例

3.1 程序界面

程序具有以下特点:绘制过程完全实现了自动化和批量化,以往需要花费数个小时绘制的图件,现在仅需要几秒即可绘制完毕,并且格式规范,可以使技术人员有更多的时间分析和研究地质资料。程序界面如图2。

图2 程序界面

3.2 程序运行结果

绘图过程自动调节比例及幅面布局;生成的矢量图样文档可以任意缩放,不会失真;生成图样后,如有特殊需要可以进一步手工编辑软件在实际应用中发挥了很大的效用。程序运行结果如图3。

图3 程序运行结果

4 结论

利用Visual Basic 与Grapher 软件提供的ActiveX Automation 技术进行二次开发,实现电压衰减曲线绘图的自动化和批量化,能够把地质人员从繁琐、机械的绘制电压衰减曲线工作中解放出来,提高工作的效率,能够把更多的时间和精力投入到数据处理及解释工作中。

[1]基于VB.Net 的ActiveX 技术在地质绘图中的应用[J].计算机论文.

[2]韩晓峰.利用Grapher 二次开发绘制井组综合曲线[J].胜利油田职工大学学报.

[3]杨朝辉,唐峰平.利用Grapher 二次开发技术绘制地面沉降过程曲线图[J].北京测绘.

猜你喜欢

坐标轴二次开发绘图
来自河流的你
“禾下乘凉图”绘图人
用坐标轴平移妙解斜率和(或积)为定值问题
浅谈基于Revit平台的二次开发
浅谈Mastercam后处理器的二次开发
基于HTML5 Canvas绘图技术应用
西门子Easy Screen对倒棱机床界面二次开发
巧用仿射变换妙解高考解析几何题
Surfer和ArcView结合在气象绘图中的应用
基于Pro/E二次开发的推土铲参数化模块开发