tcl-tk语言在advantage综合录井系统上应用

tcl-tk语言在advantage综合录井系统上应用

ID:32629079

大小:56.64 KB

页数:6页

时间:2019-02-13

tcl-tk语言在advantage综合录井系统上应用_第1页
tcl-tk语言在advantage综合录井系统上应用_第2页
tcl-tk语言在advantage综合录井系统上应用_第3页
tcl-tk语言在advantage综合录井系统上应用_第4页
tcl-tk语言在advantage综合录井系统上应用_第5页
资源描述:

《tcl-tk语言在advantage综合录井系统上应用》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、Tcl/TK语言在Advantage综合录井系统上应用摘要:本文探讨了如何利用Advantage综合录井系统集成的Tcl/Tk脚本语言编写0.2m钻时计算程序。重点介绍了Tcl/TK中窗口的创建、组件的添加与布局、与Advantage软件系统的通讯以及数据的存盘等。关键词:Tcl/TK组件脚本程序综合录井Advantage系统钻时Tel是ToolCommandLanguage的缩写,是一种用于控制和扩展应用程序的脚本语言。TK是Tel的最有用的扩展之一,是一个用于开发图形用户界面的应用程序工具集,

2、可为Tel构建图形用户界面。Advantage综合录井软件系统中集成有Tcl/TK语言,本文就探讨如何利用Tcl/TK语言编写Advantage系统中缺少的、但是对于现场录井又非常实用的微钻时计算程序。一、建立用户界面Tel脚本程序在运行时,显示为一个简单、类似DOS应用程序的黑色窗口。而TK提供了众多的组件,简单的例如,listbox创建列表框、checkbutton创建复选框、button创建命令按钮等,可为Tel脚本程序建立如普通Windows程序一样的应用程序界面。1.建立程序运行窗口在T

3、K中,每一个应用程序都有自己的组件层级,名称指的是应用程序的主窗口,或称为根窗口,对于窗口中任何组件的引用,必须”打头。wmtitle."ROPList0.2m”#设定主窗口的标题为"ROP—List_O.加”listbox.list一setgrid2-height10#定义一个名为"list”的列表框组件frame.frame1-borderwidth.lc-reliefflat-bg{darkgrey}#定义一个名为“framel”的框架组件,用以盛放其他组件checkbutton$w.fra

4、me1.chk-text"Savetofile"-variablesave#框架组件frame1内定义一个复选框chk,并指定一个变量save注意,是Tel中的注释标志,必须是一行的第一个字符(空格除外),在它后面的语句都不会被执行。在TK中,每个组件都有很多的属性,可以定义其外观,如上面创建的frame组件frame1时,指定了它的边框宽度、外观效果及背景颜色。2.组件的添加及窗口布局在TK中,对创建的组件使用几何管理器命令,它才会在屏幕上显示出来,比较常用的一个是pack命令。pack.msg

5、.1ist-sidetop-expandyes-fillypack・framel-sidetop-expandyes-fillboth#指定列表框组件list、框架frame1在窗口中显示的方式将脚本中创建的各个组件布局好后,窗口如下图所示。二、编写脚本程序1.与Advantage软件系统通讯在Advantage软件系统,要使Tel脚本程序能够访问Advantage系统的变量,必须加载由Advantage系统提供的供Tel脚本使用的中的一个Tel包interp,它提供cdaget和cdaput命令

6、,用以读取和设置Advantage系统中的CDA变量。setbittimel[cdaget0NB0TT0M_TIME]#读取参数0NB0TT0M_TIME参数cdaputCHINAROP$crop#设置CHINAROP参数2.数据计算在Advantage系统中,提供了一个CHINAROP脚本程序,用以计算"整米钻时”。在实际应用中,发现CHINAROP在计算整米钻时的时间点与Advantage系统软件的深度数据库存盘的时间点上不协调,造成了数据库中“整米钻时”的重复和错位。为了避免这种现象,需要提

7、前计算出“整米钻时”。实践证明,只需在钻达整米深度前的3cm这个时点上计算出整米钻时,就能保证存盘准确。本文的0.2m钻时计算,就采取了这种“提前的”计算方式。setbittimel[cdagetONBOTTOM_TIME]#读取ONBOTTOM_TIME参数setthisdepth[exprceil([cdagetDEPTH])_#设置起始计算井深while{1=1}{setcurrentdepth[expr([cdagetDEPTH]+0.03)]#设置为提前0.03m进行计算setbitti

8、me2[cdagetONBOTTOM_TIME]if{$currentdepth>$thisdepth}{setmyrop[expr($bittime2-$bittimel)]#计算0.加钻时setcrop[expr($crop+$myrop)_#累计0.2m钻时seti[expr($i+l)_if{$i>5}{cdaputCHINAROP$crop#累计5个0.2m钻时即一个整米钻时后,将其输出到CDAsetcrop0#重置,便于下一轮的累计seti1}setthisdepth[

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。