云题海 - 专业文章范例文档资料分享平台

当前位置:首页 > ResForm 高级应用-宏编辑

ResForm 高级应用-宏编辑

  • 62 次阅读
  • 3 次下载
  • 2025/6/6 13:23:10

ResForm 高级应用——宏编辑

ResForm脚本语言是专门为基于ResForm构架下的地质研究、油藏工程、油藏描述等系列软件产品配置的编程语言。利用该脚本语言,可以轻松实现现有功能的特定扩展,提高工作的质量和效率。

本文以一些常用的例子为主线介绍如何使用ResForm脚本语言。旨在通过短小精炼的内容编排以及浅显的实例,抛砖引玉,将复杂难懂的计算机语言变成用一门可以快速掌握的工具。用一个下午,或者临睡前时间,甚至在飞机上、上下班途中,您就有可能一口气把它读完。

是不是有点兴趣了呢?下面就让我们一起来开始吧!

1三个术语

在这里,我们先简单介绍一下这样3个术语: 1.ResForm脚本语言:一种计算机语言; 2.宏:用于实现特定功能的代码段;

3.宏脚本语言编辑器:编写或编辑宏的工具(或工作界面)。

2宏脚本语言编辑

针对不同工作需求,软件提供了标准宏、裸体宏两种宏语言编辑、应用模式。

标准宏是完整的宏代码,它拥有main主函数,在不同的单井图文档中都可使用已有的标准宏代码处理数据。裸体宏仅对某个单井图中的某个图道进行处理,比较简单、灵活。

2.1标准宏编辑器

打开单井图后,在不选择任何图道的情况下,单击主窗口工具条上的

1.单击2.单击3.单击4.单击

【编辑并执行宏】按钮,

即可打开标准宏编辑器,见图1:

按钮新建一个宏; 打开一个已有的宏; 保存当前编辑的宏; 执行宏。

图1

2.2裸体宏编辑器

选中单井图上一个图道后,点击工具条中的执行宏】命令即可将其打开,见图2;:

工具按钮,或者单击右键,选择【编辑/

3 1 2 图2

在图2所示的对话框中,上方可以设置循环范围以及是否为“自动循环”,中间代码编辑区域直接输入代码即可,不需要写main主函数。

3第一个宏

首先,我们需要打开宏脚本语言编辑器:打开任意一张单井图,单击【编辑并执行宏】功能按钮,在代码编辑区域内键入代码(图3):

void main() {

代码编辑区域

}

宏脚本编辑器非常聪明,在输入过程中,它将自动提示您要输入的内容。按上↑下↓键选择,回车Enter键确认,或者直接键入即将输入的下一个符号,如空格、点号“.”等即可。

main()表示程序执行的主入口函数,你可以将其简单理解为程序的开始标记。代码段需要用一对大括号括起。

ShowMsg表示显示一个消息框,内容文本两侧需要用引号括起,语句结束时输入分号。宏脚本语言中的符号一律使用英文符号。

图3

单击【执行】按钮,可以看到运行结果(图4)。

到这里,我们的第一个宏就完成了,接下来的内容里,我们将通过实际工作中的例子来进行介绍,期间也会穿插一些编程中涉及的知识点。

图4

4实例Ⅰ 计算孔隙度

4.1算法描述

如果某口井岩心分析孔隙度与补偿密度相关性较好,存在下述关系式:

??DEN??ma?f??ma

?——计算孔隙度,代码中用POR表示;

DEN——补偿密度;

?ma——岩石骨架密度,隐含值取2.65,代码中用DG表示; ?f——流体密度,隐含值取1,代码中用DF表示。

4.2代码实现

在这里,我们需要编写一段代码,它完成的工作是:根据已有公式计算得到计算孔隙度数值,并将其加载至对应的图道里。

首先,单击

按钮打开宏脚本编辑器,粘贴或键入下述语句(双斜杠//后面的文字为

代码注释,可以不加),见图5:

//----------------------计算孔隙度---------------------- void main() {

float DG = 2.65; //定义岩石骨架密度值 float DF = 1; //定义流体密度值 //新建曲线道,命名为POR

SCurveTrace por = this.Channels.AddTrace(WellTraceTypes.Curve,\ por.Title = \计算孔隙度\ //定义道头显示内容 this.SetLoopRange(900,960); //设置循环的起止深度范围 //循环,根据公式计算并将值赋给图道 do{ }

por.Value = (this.DEN.Value - DG)/(DF - DG); }while(this.NextRow());

//--------------------------------

图5

在详细讲解这段代码之前,我们先看看它的执行效果: 单击宏脚本语言编辑器对话框下方的

【执行】按钮,可以看到单井图上新建了一条

“计算孔隙度”图道。我们手动将数值范围设置为0~1之间,见图6:

图6

4.3代码详解

第4.2小结所示的代码中:

1.float:是一种数据类型,用于浮点型数据。

2.SCurveTrace:曲线类图道的公共类。其它同类型的类还有:SDiscreteTrace离散型数据道、SLayerTraceBase层对象型数据道等。por为SCurveTrace实例化后的一个对象。

在这里,我们简单介绍一些编程的基本概念:

类是一个抽象的概念。以现实生活为例,我们可以把小轿车、越野车、卡车等具有的共同特性抽象出来,构成“汽车”类。

类包含属性和方法。

属性相当于特征描述,如汽车具有颜色、箱型等。方法相当于具有的行为,如汽车可以进行启动、前进、后退等活动。

对象是类这个抽象概念对应的实体。如,有一辆车牌照号码为陕A55522的红色福特小轿车,那么这辆车就是将“汽车”类实例化的对象。我们通过将类实例化成对象来使用这个类的属性和方法。

读到这里你是否有疑问?为什么用这种类与对象的方式设计程序呢?

这样设计的好处,一是将编写的代码更加贴近真实生活,增加它的易读性;二是通过抽象把大程序分解成更易于管理的小单元,类似于“黑盒”。就想您在使用宏脚本的某个类或方法时,不需要知道它们内部是怎样实现的。

3.this: this是一个关键字。关键字是计算机语言里事先定义的,有特别意义的标识符。在ResForm脚本语言中,this相当于单文档类的实例。在this之后输入点号“.”可以查看到单文档类下所有的图道类以及方法、属性等。

4.实心点号:“.”表示“??的”。

5.Channels:图道或图道组合的集合,可以理解为一个容器,能够放置一个或者多个图道。

6.AddTrace:为Channels类所具有的一个方法,意为“添加图道”。小括号内传递两个参数,分别代表图道类型为曲线道、图道名称为POR。

7.对象定义之后就可以使用了,por.Title = \计算孔隙度\意为将por对象(por曲线道)定义道头显示内容设置为“计算孔隙度”。

8.SetLoopRange:为单文档类下的一个方法,表示设置循环的起止深度范围,小括号

搜索更多关于: ResForm 高级应用-宏编辑 的文档
  • 收藏
  • 违规举报
  • 版权认领
下载文档10.00 元 加入VIP免费下载
推荐下载
本文作者:...

共分享92篇相关文档

文档简介:

ResForm 高级应用——宏编辑 ResForm脚本语言是专门为基于ResForm构架下的地质研究、油藏工程、油藏描述等系列软件产品配置的编程语言。利用该脚本语言,可以轻松实现现有功能的特定扩展,提高工作的质量和效率。 本文以一些常用的例子为主线介绍如何使用ResForm脚本语言。旨在通过短小精炼的内容编排以及浅显的实例,抛砖引玉,将复杂难懂的计算机语言变成用一门可以快速掌握的工具。用一个下午,或者临睡前时间,甚至在飞机上、上下班途中,您就有可能一口气把它读完。 是不是有点兴趣了呢?下面就让我们一起来开始吧! 1三个术语 在这里,我们先简单介绍一下这样3个术语: 1.ResForm脚本语言:一种计算机语言; 2.宏:用于实现特定功能的代码段; 3.宏脚本语言编辑器:编写或编辑宏的工具(或工作界面)。

× 游客快捷下载通道(下载后可以自由复制和排版)
单篇付费下载
限时特价:10 元/份 原价:20元
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:fanwen365 QQ:370150219
Copyright © 云题海 All Rights Reserved. 苏ICP备16052595号-3 网站地图 客服QQ:370150219 邮箱:370150219@qq.com