ResForm 高级应用-宏编辑.docxVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
ResForm 高级应用——宏编辑 ResForm脚本语言是专门为基于ResForm构架下的地质研究、油藏工程、油藏描述等系列软件产品配置的编程语言。利用该脚本语言,可以轻松实现现有功能的特定扩展,提高工作的质量和效率。 本文以一些常用的例子为主线介绍如何使用ResForm脚本语言。旨在通过短小精炼的内容编排以及浅显的实例,抛砖引玉,将复杂难懂的计算机语言变成用一门可以快速掌握的工具。用一个下午,或者临睡前时间,甚至在飞机上、上下班途中,您就有可能一口气把它读完。 是不是有点兴趣了呢?下面就让我们一起来开始吧! 1三个术语 在这里,我们先简单介绍一下这样3个术语: 1.ResForm脚本语言:一种计算机语言; 2.宏:用于实现特定功能的代码段; 3.宏脚本语言编辑器:编写或编辑宏的工具(或工作界面)。 2宏脚本语言编辑 针对不同工作需求,软件提供了标准宏、裸体宏两种宏语言编辑、应用模式。 标准宏是完整的宏代码,它拥有main主函数,在不同的单井图文档中都可使用已有的标准宏代码处理数据。裸体宏仅对某个单井图中的某个图道进行处理,比较简单、灵活。 2.1标准宏编辑器 图1打开单井图后,在不选择任何图道的情况下,单击主窗口工具条上的【编辑并执行宏】按钮,即可打开标准宏编辑器,见图1: 图1 1.单击按钮新建一个宏; 2.单击打开一个已有的宏; 3.单击保存当前编辑的宏; 4.单击执行宏。 2.2裸体宏编辑器 选中单井图上一个图道后,点击工具条中的工具按钮,或者单击右键,选择【编辑/执行宏】命令即可将其打开,见图2;: 1 1 2 3 图2 在图2所示的对话框中,上方可以设置循环范围以及是否为“自动循环”,中间代码编辑区域直接输入代码即可,不需要写main主函数。 3第一个宏 首先,我们需要打开宏脚本语言编辑器:打开任意一张单井图,单击【编辑并执行宏】功能按钮,在代码编辑区域内键入代码(图3): void main() { 代码编辑区域 代码编辑区域 图3 图3 宏脚本编辑器非常聪明,在输入过程中,它将自动提示您要输入的内容。按上↑下↓键选择,回车Enter键确认,或者直接键入即将输入的下一个符号,如空格、点号“.”等即可。 main()表示程序执行的主入口函数,你可以将其简单理解为程序的开始标记。代码段需要用一对大括号括起。 图4ShowMsg 图4 单击【执行】按钮,可以看到运行结果(图4)。 到这里,我们的第一个宏就完成了,接下来的内容里,我们将通过实际工作中的例子来进行介绍,期间也会穿插一些编程中涉及的知识点。 4实例Ⅰ 计算孔隙度 4.1算法描述 如果某口井岩心分析孔隙度与补偿密度相关性较好,存在下述关系式: ——计算孔隙度,代码中用POR表示; DEN——补偿密度; ——岩石骨架密度,隐含值取2.65,代码中用DG表示; ——流体密度,隐含值取1,代码中用DF表示。 4.2代码实现 在这里,我们需要编写一段代码,它完成的工作是:根据已有公式计算得到计算孔隙度数值,并将其加载至对应的图道里。 首先,单击按钮打开宏脚本编辑器,粘贴或键入下述语句(双斜杠//后面的文字为代码注释,可以不加),见图5: //----------------------计算孔隙度---------------------- void main() { float DG = 2.65; //定义岩石骨架密度值 float DF = 1; //定义流体密度值 //新建曲线道,命名为POR SCurveTrace por = this.Channels.AddTrace(WellTraceTypes.Curve,POR); 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层对象型数据道

文档评论(0)

676200 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档