江 西 煤 炭 科 技
JIANGXI COAL SCIENCE & TECHNOLOGY
2007年第4期
N0.4 2o07
Surfer8.0与 VB6.0在电法解释中的应用
中图分类号:TD391.41
廖志伟
(江西省工程物探新技术公司,江西 南昌 330001)
文献标识码:B 文章编号:1006—2572(2007)o4—0056一o2
Application of Surfer8.0、vith VB6.0 in Interpretation of Electrical Prospecting
UA0 Zhiwei
(Jiangxi New Technology Co.of Engineering Geophysics I Nanchang。Jiangxi 330001)
Surfer是 Golden software公司开发的专业绘 图软件。
其强大的绘图功能和良好的人机交互界面,使得它一上市
就受到使用者的青睐。更主要的还是因为它具有良好的
二次开发平台,能让使用者根据需要开发出各种程序,完
成各种工作。由于这诸多优点,它已广泛应用于物探、地
质、军事、测绘、气象、农业、教学、科研和管理等领域。
通常,电法解释图件的绘制都是利用Surfer手动绘制,
如视电阻率平面图、断面图、剖面图、测线布置图等。当数
据量较大时,既费时费力,也加入了许多人为因素,影响图
件的正确绘制。将具有 良好二次开发平台的 Surfer8.0和
功能强大的语言开发工具VB6.0结合起来,根据需要进行
二次开发 ,能够很好地服务于电法勘探 ,如批量绘图、批量
填充、批量标注、批量打印等。
1 Surfer8.0的 内置对 象和 VB6.0调 用 Surf_
er8.0的实现过程
Surfer8.0封装了 60多种 ActiveX对象,通过对 Ac—
tiveX的对象的编程 ,可以实现 Surfer8.0软件提供的所有
绘图功能。位于 Surfer8.0最上层的对象是 Application,相
当于 Surfer8.0主程序。Surfer8.0的所有对象的分支都是
从 Application开始的。Application对象的下一层是 Docu—
ments,它集合包含了所有打开的文档,是进入图形文档和
工作表的通道。其他内置对象和它们的包含关系如图1。
在 VB6.0中调用 Surfer8.0进行嵌入式编程类似于调
用 ActiveX控件编程。要调 用 Surfer8.0,就必 须先获得
Surfer8.0及其下属的对象模型,并把它们赋值给对象变
量。在 VB6.0中,可以用 CreateObject函数创建Application
对象:
· 56·
图 1 Surfer8.0的功 能
Dim SurferApp As Object’定义对象变量 ,用于保存
Application对象的赋值
Set SurferApp: CreateObject(”Surfer.Application”)’
创建Application对象,并赋值给变量SurferApp
SurferApp.Visible=True’使 Surfer8.0可见
在创建Application对象之前,可以用GetObject函数来
检测Surfer8.0是否已经运行,如果是,则直接将其句柄赋
给 SuferApp,避免 Surfer8.0重复运行 :
Set SurferApp=GetObject(,”Surfer.Application”)
2 开发过 程
在创建Application对象后,就可以根据需要进行下一
步的开发了 .下面以电法勘探中绘制等值线图为例加以
说明。
Dim doc as Object’定义 doe变量
维普资讯 http://www.cqvip.com
Set doc=SufferApp.Documents.Add(1)’添加图形文
档,供绘图用,以下所有的图形都将绘制在doc指向的图形
文档中
Dim retvalue As Boolean’定义retvalue变量
retvalue = SufferApp.GridData(DataFile:=in—File,
xCol::1.yCol:=2,zCol:=3,Algorithm:=1,ShowRe-
port:=False,OutGrid:=Out—File)’数据网格化。in—File
是需要网格化的数据文件名 ;xCol、yCol、zCo1分别是数据
所在工作表中的列号;Algorithm是网格化方式,1代表
Kriking:ShowReport表示是否显示网格
报告
软件系统测试报告下载sgs报告如何下载关于路面塌陷情况报告535n,sgs报告怎么下载竣工报告下载
;Out—File是网
格文件要输出的文件名。如果网格化成功,返回True值给
retvalue。GridData还有其他的参数,要详细了解请查阅
Suffer的自动化帮助。
Dim map As Object’定义map变量
Set map=doc.Shapes.AddContourMap(Grid_file)’使
用 Shape对象的 AddContourMap方法添加等值线图,Grid—
file是网格文件( .grd)
map.Overlays(”Contours”).FillContours=True’设置
等值线图的填充属性
图2 绘图程序框图
map.Levels.LoadFile(LevelsFile)’加载等值线图的等
级文件,即色标文件 ,并用该色标文件填充等值线图
Dim text as Object’定义 text变量
Set text = doc.Shapes.AddText(x:= map.Left +
map.Width/2,Y::map.Top+1,text::Text)在等值线
图的顶上加上标题
加以循环,就可以实现批量绘制等值线图(也可以是
其他图件,如基面图、张贴图、影像图等),并批量填充和标
注的功能了。
3 应用实例
某煤矿委托我单位查明矿区内所有采空区,接到任务
后 .我单位在矿区内进行电法勘探,共完成电测深物理点
200多个。如果使用 Suffer手动绘图,光绘图工作就得一
天。为了减轻劳动强度,提高工作效率,故用 VB6.0开发
了一个批量绘图程序,并将做好的等级文件批量填充图
形,然后批量标注。程序框图见图2。实践证明,该程序应
用效果良好(如图3),只需半个多小时就能完成上述绘图
工作。
Q 啦氧氓I l j 》 T●~ {}口口o
LIll。⋯ 。Id. 一 hl⋯t I⋯ 。 ㈨ ⋯ .IIlII I r7lr日 r41,-$r2kl[.qt11。翻J轧町I51 q 。 1 111211捌 ‘n到蛐7I1再1鞋 灞圈 I嗣27用 羞
觜 盎 要 Lj u L3 圈 型
⋯ ~ . 一 ⋯ ⋯ 囵 兹 茬
翌 —===7 三=
苎 鳃 基 }●P 1L山 五 ■‘●H ■髑■疆 ■ ● 塑
曼蹬 耐瞒
⋯
塑
l6 b 盈
糟 暖图簖 懑鳖 —■宣■●■■●■ ■-i■_ ■ 辫
昏 埘t:溪 l3
昌==篙: 订 L4 厂■
、菡 诧
^
I , ●z 霹 ,—一 l
一 /J●_-_ 胬 —一 — ■ 2 ■ 施 觎曩 : — 圈
■ ‘f】目■翻q■■I 日C 0H∽ 霹
埘t 霹 ‘ ■t —一 {^● 啊■p重;l■■曩 -
E’.H p 霹 蛹
日’.H T∞^ 囊 }2 隅 日_■■H 量 哩 捆隧 ’ 园盟 一 日圈cm
品^ hntt 嚏
j 日口 ’ 髓 。 u●
·日四 ●-· 毳
m,t 圜 ; 露 E’.H L p 宴 一日’.H T坤^ 耋 ;一{ ●o∞_ 姥 一日四‘- 毳 日’一哪
品-一 ‘糠 ●
日’ v^
哪f0 ■ 一 ⋯ 。。 ⋯⋯ 荔 “^ ”h
图 3
5 结语
用 VB6.0对 Suffer8.0进行二次开发,可以实现自动化
的批量绘图功能,并自动标注和填充,提高了效率,也保证
了绘图的准确性。但Suffer提交的图形很难通过程序进行
二次编辑,成图后需要手动调整。用VB6.0对Suffer8.0开
发的应用程序兼容性也不是很好,对于较低版本的Suffer
利用绘图软件绘制的某煤矿视电阻率剖面图
不能够完全适应。
作者简介:廖志伟(1982一),男,江西赣州人,中国矿大毕业,助理
工程师,主要从事物探工作。
收稿 日期 :2007—04—27 编辑:郭正义
· 57 ·
维普资讯 http://www.cqvip.com