2024年3月9日发(作者:)
维普资讯
第27卷第1期
桂林工学院学报
V01.27 No.1
2007年2月
Journal of Guilin University of Technology
Feb.20o7
文章编号:1006—544X(2007)01—081—05
基于Delphi 7和Corel Draw 9 VBA的钻孑L
柱状图自动成图系统
许哲平,陈建强,迟文学,王东辉,武 峥
(中国地质大学地球科学与资源学院,北京100083)
摘要:比较了目前国内外钻孔柱状图系统的实现技术,提出了一条结合Delphi 7和CorelDraw 9 VBA
实现钻孔柱状图的思路,开发出具有自主版权的自动成图系统.介绍了该系统的目标功能、体系结
构、开发平台和系统特点,对系统的设计步骤进行了详细说明,并给出了部分关键代码.该自动成图
系统操作简单,功能强大,已经在实际项目中得到运用,极大提高了作图的精度和效率.
关键词:钻孔柱状图;Delphi 7;CorelDraw 9 VBA;自动成图
中图分类号:TP391.72;P285.1 文献标志码:A
钻孔资料在油田、地质和工程勘探等部门是 理想的专业柱状图是加拿大公司的WininG ,该
地质分析的基础数据,而作为钻孔资料直观表现 系统基本能满足各类柱状图的要求.但是其价格
形式的柱状图则是提取地质信息和确定后期工作 和英文界面等因素也制约了软件的推广.
方向最重要的资料.近年来,随着计算机技术的
广泛应用和推广,柱状图成图也开始实现计算机
1系统目标和功能
化 .尽管出现了不少三维(立体)的柱状图系
钻孔柱状图自动成图系统的目标主要是将以
统 J,但是目前的需求主要还是基于二维(平面) 往钻孔柱状图的手工劳动用计算机自动实现,将
的.本文讨论的是二维成图技术.
钻孔柱状图输出为CorelDraw 9默认的CDR格式,
但是,多数的柱状图计算机成图是首先在图
后期的图像编辑操作全部在CorelDraw 9中完成,
纸上绘制好柱状图,再扫描到计算机中,然后利
经简单处理后将柱状图在打印机输出或转存为其
用AutoCAD、CorelDraw或GIS软件进行手工描 他图像格式.
绘 J.这样的柱状图虽然在信息共享和传递上有
该系统为最终用户提供了一个良好的操作界
一
定的进步,但是同样存在绘制时间长、效率低、
面,与传统的Windows界面兼容,包括菜单、工
精确度差、编辑困难等特点,在一些工期紧、任
具条、状态栏等对象,操作简单.其功能如下:
务重的资料处理中已不能满足需要.因此,又出
(1)文件操作.在Excel钻孔属性数据基础上输
现了一些基于数据库技术的成图系统.国内的系
出CorelDraw 9格式的CDR文件,包括单孔和多孔
统主要是利用VB、VC++等工具对AutoCAD和 柱状图.(2)数据操作.导人、浏览和编辑Excel
各类GIS平台进行的二次开发软件 .虽然有
数据,并将修改的数据反映到柱状图中.(3)参
的系统效果不错,但是对于广大的地质工作者来
数设置.提供成图比例尺、记录分色、用户界面
说,这些平台都是比较复杂的,需要进行专门的
等参数设置功能.(4)在线帮助.提供了钻孔柱
培训,从而限制了系统的推广和应用.国外比较
状图成图系统使用方法的说明文档.
收稿日期:2006—01—10
基金项目:云南省地震局“十五”重点项目(YN150105T044)
作者简介:许哲平(1980一),男,博士研究生,研究方向:城市第四纪地质、盆地模拟与分析、地理信息系统和虚拟现实技术
维普资讯
82 桂林工学院学报 2007笠
2 系统开发
2.1 系统体系结构
它的矢量图形编辑功能非常强大,最后生成的文
件特别小,比专业的GIS软件有更广泛的用户群
体,操作起来也相对容易.因此,在国内的许多
整个系统的体系结构如图1所示.该系统可
地质和油田部门都应用这个软件来作图,而且在
用于室内地质记录本整理、工程地质和水文地质
大型项目的应用也是非常成功的Ll。。.但是该软件
历史资料的整理,也可以直接在油田、勘探等野 的一大缺点就是版本之间的兼容性不好.国内地
外工作时使用.
原始地质资料(室内或现场输入)
l竺 墨堡鍪塑f l竺 誊丝
据输入r_=—— = -
I Excel数据表格I
钻孔自 l竺! 皇 堕 墨 卜
动成图。 ! .
据二据一数二数二尺性二属=属二比性二例] ~
1 CDR格式文件(单孔和多孔)
图形编
辑输出 打印I l导出为DXF和JPG等
图1钻孔柱状图自动成图系统体系结构
Fig.1 Architecture of automatic mapping system
系统由3个部分组成:钻孔数据输入、钻孔
自动成图和图形编辑输出.其中,钻孔数据输入
主要在Excel中完成.钻孔自动成图是系统的核心
功能,主要是利用Delphi控制CorelDraw 9 VBA脚
本来实现的.图形编辑输出则是成图之后,为了
使图形美观或工作需要,可进一步在CorelDraw 9
中进行编辑或提取地质信息.
2.2 开发平台
本系统是利用Delphj 7结合CorelDraw 9 VBA
脚本调用Excel表格数据来实现的.
Excel是Microsoft公司开发的一种专业表格处
理软件,其主要特点是功能强大、易于操作,有
着广泛的用户群体,被广泛地用于各个行业.本
系统所有钻孔、岩心数据都存储在Excel中.
Delphi 7是Borland公司提供的一种全新的可
视化编程环境L9 J,当前的最新版本是2006.Del—
phi 7是一种方便、快捷的Windows应用程序开发
工具,它使用了Microsoft Windows图形用户界面
的许多先进特性和设计思想,提供了多种数据库
链接技术,特别是ADO技术,能够广泛地链接各
种不同类型的数据.本系统就是利用ADO技术来
链接外部的Excel数据.
CorelDraw是Corel公司的一款平面设计软件.
质行业普遍都以CorelDraw 9为标准,本系统也是
基于这个版本的.但是,对于任务重的项目,单
纯用手工进行数字化显然是不切实际的.Corel—
Draw 9为外部程序控制成图提供了两种方式:
Corel SCRIPT和Microsoft Visual Basic for Applica—
tions(VBA) ¨].C0rel SCRIPT只能在CorelDraw 9
内部环境运行,而VBA则能在Core/Draw 9外部环
境中运行,并能够被VB、VC++、Delphi、Pow—
erBuilder等语言调用,还能充分结合这些语言的
各自优势.除了CorelDraw外,常见的可以利用
VBA编程来控制程序的软件还有MS Ofifce和Arc—
GIS 等.
2.3 系统实现的基本步骤
根据图1所示的体系结构,系统由钻孔数据
输入、钻孔自动成图和图形编辑输出分别来实现.
2.3.1 钻孔数据输入钻孔数据分两部分:钻孔
属性数据和钻孔岩性图例.属性数据包括钻孔编
号、高程、深度、地名、序号、层号、起始位置、
结束位置、岩性描述、图例、样品名、取样深度
和样品描述等文本信息.在Excel中输入属性数据
时,将钻孔的概要信息输人Excel工作簿中的
Sheet 2,然后将详细信息输入Sheet 1(图2).这
种方法对于自动绘制多孔对比图很有帮助.按照
这个方法,可以将一个项目的大量钻孔数据输人
一
个Excd表格中.
图3给出了钻孔岩性图例的文件名.这些都是
预先绘制好的位图(BMP)文件.存储在特定目录
下,如果需要的图例文件不存在,可以参考已有的
图2 sheet2中的数据
iFg.2 Content of sheet 2
维普资讯
第1期 许哲平等:基于Delphi 7和CorelDraw 9 VBA的钻孔柱状图自动成图系统 83
图例创建新的图例文件.利用Windows自带的画 所有成图参数设置好之后,就可以利用Corel—
图程序或专业Photoshop、CorelDraw等程序都可以 Draw 9 VBA实现单孔和多孔对比柱状图.多孔对
创建这些图例.图4列举了部分图例文件和它们 比图实现起来相对容易,这里主要介绍单孔成图
的尺寸及颜色信息. 技术.Excel中的钻孔数据加载之后,单孔自动成
图可以按照下面的步骤来完成:(1)利用CreateO—
leObject(‘CorelDraw.Application.9’)链接Corel—
Draw 9程序;(2)利用VBA中的NewLayer函数创
建3个图层,分别用来操作图框、文本和柱段;(3)
图3 sheet1中的数据
利用VBA中的CreateRectangle来绘制矩形图框,
Fig.3 Content of sheet 1
BeginDrawCurve、DrawCurveLineTo和EndDrawCurve
绘制缓冲线,CreateArtisticText填充描述文本,Creat—
eRectangle结合ApplyFullColorFill绘制和填充
柱段.
下面是绘制柱段的部分代码:
with detailCore do
begin
First;
for i:=0 to detailCore.RecordCount一1 do
begin
drawtop:=detailCore.Fields f 1 1.AsFloat¥10¥
图4钻孔岩性图例一览
100/StrTolnt(scale);//层位起点
Fig.4 List of obrehole symbols
drawbottom:=detailCore.Fields[2].AsFloat¥10¥
100/StrTolnt(scale);//层位终点
2.3.2 钻孔自动成图 岩性描述工作完成之后,
ComlDraw.CreateRectangle(ConvX(140)一ConvX
在Delphi 7通过TADOQuery组件的Connection—
(drawtop),ConvX(一50),//绘制层位
Stirng属性和SQL属性链接钻孔数据Excel文件,
ConvX(140)一ConvX(drawbottom),ConvX(一
30),0);
并显示到对应的TDBGrid组件中(图5).Sheet 2
CorelDraw.ApplyFullColorFill(bmppath+detail—
的信息显示在上部,Sheet 1的信息显示在下部,
Core.Fields[3].AsString+:bmp.
并建立了Sheet 1和Sheet 2之间的明细关系,即在
200000,50000,100,100,0,100,一1,一1);//
上部选择不同的钻孔编号,下部则会显示这个钻
填充图例
detailCore.Next;
孔的详细信息.系统还提供设置成图比例尺、浏
end;
览详细记录、设置用户界面风格、控制柱状图样
end;
式等功能.
2.3.3 编辑和输出柱状图 自动生成的钻孔柱状
图还需要进一步编辑之后才更加美观、更具实用
性.后期的编辑工作都是在CorelDraw 9中完成的.
由于缓冲线和文本换行功能的实现,使得编辑工
作非常简单.只要添加柱状图标题,调整文本大
小和位置以及缓冲线的位置就可以了.
对柱状图进行编辑后,可以直接在CorelDraw 9
中进行打印,或者将其保存为DXF、BMP、JPG等文
件格式备用.
2.4 系统特点
图5钻孔柱状图自动成图系统界面
整个系统由前期的Excel数据输入、自动成图
Fig.5 GUI of automatic mapping system of bore log
系统和后期的CorelDraw 9编辑输出3个部分有机
维普资讯
桂林工学院学报 2007钽
组成.数据处理和成图部分相互独立,这样可实 性评价和市区震害预测工程”项目的钻孔施工环
现分工合作、提高效率.
节.该项目的目的是查明设计探测断层地表和隐
在钻孔数据输入方面,将单柱体的概要信息 伏断层的性质,检验浅层地震勘探、地质填图、
和详细信息分开输入,有助于与其他柱体进行对 地质编图的探测成果,查明昆明市区目标隐伏活
比以及数据的浏览和显示.而且,基于数据库技
断层的性质.该项目在昆明市活断层探测区域内
术成图系统的最大优点就是其重用性和共享性,
约10个场地开展40个钻孔的跨断层钻孔探测,
数据一旦修改后,成图能立即完成,不影响精度,
总进尺约为4 000 m.
节约了时间和精力. 按照传统的手工方法来绘制钻孔柱状图,不
在自动成图功能上,能够设置任意比例尺,
但需要耗费大量的人力物力,也不能保证成图的
实现缓冲线和文本换行,浏览样品信息,进行多 精度,成果也不能很好地进行共享和交流.若直
孔对比,为后期的编辑和修改尽可能地提供方便,
接在CorelDraw 9或其他图形软件中绘制柱状图,
提高成图效率. 也不可避免地会进行大量机械的重复工作.而利
CorelDraw 9的编辑功能非常强大,系统自动 用本系统之后,柱状图的成图效率和速度大大增
生成的CorelDraw 9格式文件直接就可以编辑.调
加,一个孔深100 m左右、i00多层、采样30多
整文本和缓冲线的位置就能完成单孔柱状图.对 个的钻孔成图工作,从录入钻孔描述到最后打印
于多孔对比也只要连接对比地层的分层界线,加
机输出,一个工作人员只要不到3 h就可以完成
上相应描述就可以.
(图6和图7是昆明市清泉村钻孔的柱状图对比和
单孔岩心柱状图).该项目完工时,所有的柱状图
绘制工作也告完成.
3 系统的应用
笔者参与了“昆明市活断层探测与地震危险
KZ9_l(0 m) KZ9
3r~0 3
.
K Z9.4f一0 7 …
I 9.2r一】
7
立矗
_ ≈ 1 5
、
毛 、 ;
专
一 2 1
——
5
1
6
1 ‘
4 5
5】
。 ‘j
;
?:
;
.I。 :
;
。
‘
\
‘ :
. ’
.; :
。 ’
.
,.
。
、
.
’
’
t
’ 8.5
’ “
.
’
’
.
. 。
.
!一
J
\
J
。√。 』
。
9、\
. ‘
.
。 。
7
、. ・ ;
1 6
.
. ’
,.
。
.
●’
一.
・
.
。
.
・
7 2m ・ 。 :’
,
’
。 ;
‘
: 4 5
2 1
l
、 ,
.
\
|
l
6.25~\
\
I
.一
0::
图6 昆明市昭宗路钻孔的对比柱状图
Fig.6 Four bore logs of Zhaozong Road in Kunming
维普资讯
第1期 许哲平等:基于Delphi 7和CorelDraw 9 VBA的钻孔柱状图自动成图系统 85
钲 层
代 号
孔
深
层
厚 柱状图 岩性描述
参考文献:
、 、/'
、
\/
1 0 9 0 9 7 — 7 褐色黄褐色耕植土
2 1 6 0 7 黄红杂色粉砂
[1]黄树桃,王树红,韩绍阳,等.钻孔资料管理和自动成
3 2 1 0 5 红色灰白色条纹相问粉砂质粘土
图技术研究[J].铀矿地质,2004,20(1):50—55.
4 3 1 1 黄色灰白色条纹相问粉砂质粘土
[2]李亦纲,曲国胜,陈建强,等.城市钻孔数据地下三维
5 4 7 1 6 灰自色粉砂
地质建模软件的实现[J].地质通报,2005,24(5):
6 5 0 3、 土黄色粉砂质粘土
7 5 7 0 7 灰白色粉砂
470—475.
[3]戴欣明.基于Maplnfo&CorelDraw的地质图制作[J].
测绘通报,2002(5):39—40.
[4]郑洁红,吴名彬.工程地震钻孔柱状图的微机绘图系统
[J].华南地震,1998,18(2):72—77.
8 9 9 4 2 士苛色粉枷 粘十:妻藏白色粉 蓬屡
[5]赵锋,崔希民,王蕊香,等.基于ObjectARX与OLEDB
9 11: 1 3 灰白色黄色杂色粉砂质粘土
的钻孔柱状图自动绘制[J].河北建筑科技学院学报,
101 112, 5c 1 n 34 盔熬
2002,19(4):6l一64.
12 13] 04 摄展笆肘●
[6]解华明,陈守余.基于MAPGIS的钻孔柱状图绘制软件的
13 13∈ 0 3, 灰色粉砂质粘土
编制[J].物探化探计算技术,2004,26(1):85—9o.
14 1 5] 1 7 灰色青灰色粉砂
[7]张渭军,王文科,孔金玲,等.基于GeoMap的钻孔柱状
剖面图的自动绘制[J].人民黄河,2005(6):58—60.
图7 昆明市阮家村单孔岩心柱状图
Fig.7 Single bore log of Ruanjiacun in Kunming
[8]GAEA Technologies Ltd.WinLoG[EB/OL].[2006—01—
06].http://www.gaea.ea/en—us/dept一1.html
[9]许哲平.DELPHI 8入门与进阶[M].北京:清华大学出
4 存在的问题
版社,2005:1—4.
[10]彭聪,白金,刘国兴,等.中国地学断面CorelDraw图形
在实际应用过程中,应当尽可能地输入详细
数据库开发研究[J].地球学报,2003,24(4):361
的信息,这对以后的地质问题分析有重要的帮助.
—
366.
本系统具有成图速度快、精度高、易于操作等优
[11]王建武.CorelDraw的Script语言及其在地图生产中的应
点,提高了项目资料的处理效率.但是,对于钻
用[J].四川测绘,2001,24(4):168—171.
[12]刘少军,何政伟,黄润秋,等.利用ArcGIS中VBA开
孔的其他信息,比如波速测试、孢粉样品、测年
发滑坡阶段综合预报功能[J].桂林工学院学报,
样品、粒度分析、体系域和沉积旋回等,还不能
2004,24(3):315—318.
一一
反映到柱状图中.这些都是本系统今后需完
善的地方.
Automatic Mapping System of Bore Log Based on
Delphi 7 and CorelDraw 9 VBA
XU Zhe-ping,CHEN Jian-qiang,CHI Wen-xue,WANG Dong-hui,WU Zheng
(School ofthe Earth Sciences and Resources,China University ofGeosciences,Beijing 100083,China)
Abstract:In comparison with corresponding bore log systems at home and abroad,introduces a new idea to
create automatic mapping system with Delphi 7 and CorelDraw 9 VBA to realize an independent copyright system
based on existing technique advantage.In detailed introduction of aim,function,architecture,development
tools,realization steps and features of the system,this article also gives some key codes.With simple operation
and strong function,this system can be applied in industry and plays an important role in improving the preci-
sion and efifciency of mapping.
Key words:bore log;Delphi 7;CorelDraw 9 VBA;automatic mapping


发布评论