surpac软件tcl_scl入门

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

surpac软件tcl_scl入门Surpac软件Tcl/Scl 入门
目录
第1章逻辑符、命令别名和热键 (1)
1.1 逻辑符 (1)
1.2 命令别名 (4)
1.3 键盘映射 (6)
第2章创建菜单和工具栏 (8)
2.1 调用菜单和工具栏编辑工具 (8)
2.2 从系统菜单条中创建菜单 (9)
2.3 创建自己的菜单条目 (10)
2.4 创建工具栏 (11)
2.5 创建一个定制的按钮到工具栏上 (11) 第3章在T cl脚本中录制一个任务 (13)
3.1 录制宏 (13)
3.2 宏的回放 (13)
3.3 宏文件结构 (14)
3.4 SclFunction (17)
3.5 使用 _action 开关 (18)
第4章实例-录制一个间单实用的宏 (21)
第5章 Tcl基础 (23)
5.1 Tcl定义 (23)
5.2 Scl定义 (23)
5.3 Tcl语法 (24)
5.4 命令 (24)
5.5 变量和置换 (25)
5.6 分组 (25)
5.7 命令置换 (26)
第6章创建用户窗体 (28)
6.1 Gudio (28)
6.2 Guido 命令语法 (29)
6.3 Guido命令开关 (29)
6.4 GuidoForm (30)
6.5 GuidoField (30)
6.6 GuidoComboBox (31)
6.7 GuidoCheckBox (32)
6.8 GuidoRadioButton 和 GuidoButtonGroupPanel (33) 6.9 GuidoFileBrowserField (34)
6.10 GuidoLabel (36)
6.11 Dependencies (36)
6.12 SclCreateGuidoForm (37)
6.13 SclRun (38)
6.14 用Scl 窗体功能将Guido组合在一起 (39)
第7章实例2 –宏的自动化 (42)
第8章较好的从图形工作区中选择点的方法 (45)
8.1 SclSelectPoint 功能 (45)
8.2 将点数据按序返馈到软件中 (46)
第9章实用的T cl 命令 (48)
9.1 数字操作 (48)
9.2 文本串操作 (51)
9.3 文件系统操作 (53)
第10章 Tcl语言中的基本的流控制 (57)
10.1布尔表达式 (57)
10.2 if 命令 (58)
10.3 while {expression} {commands} (60)
10.4 for {start} {expression} {next} {commands} (60) 10.5 用continue 和 break改变循环执行 (61)
第11章 Surpac ranges (63)
11.1 SclRangeExpand (63)
11.2 SclRangeGetCount (63)
11.3 SclRangeGet (64)
11.4 把上述命令组合在一起 (64)
第12章实例3 坐标转换 (66)
第12-A章实例3 –数据库剖面绘图(选做) (72)
第13章文件读写 (79)
13.1 打开和关闭文件 (79)
13.2 从文件中读数据 (80)
13.3 往文件中写入 (80)
13.4 一个文件操作模板 (81)
第14章实例4 文件输入/输出 (85)
第15章 Tcl 参考 (87)
15.1 在线参考手册 (87)
15.2 书籍 (87)
15.3 网站资源 (87)
15.4 -Surpac 扩展 (87)
第16章课程总结 (88)
16.1 学习内容 (88)
16.2 命令 (88)
16.3 下一步学习建议 (89)
第1章逻辑符、命令别名和热键
概述
创建一个宏脚本程序使软件自动处理一些工作是件比较简单的事情,这个宏命令可以在何工作目录中运行。

通过目录结构,在宏命令开发中通过逻辑符的使用可以实现这种程序的可移植性。

命令别名和热键的使用提供快速操作和运行普通的宏文件的机制。

这一章学习如下内容:
为何使用逻辑符以及如何定义逻辑符
命令别名和相关文件
热键和键盘映射文件
1.1 逻辑符
逻辑符是Surpac软件的一个术语,是指指向物理存贮目录的一个大家都知道的盘符名字,这个逻辑符实时的映射到硬盘上的一个目录。

使用这个系统,不同的软件安装版本不必指向硬盘上的实际的目录名。

例如:逻辑符名SSI_ETC: 在一个系统中可以指向c:/ssi_v4.1-k/share/etc 目录或在另一个系统中指向d:/software/Surpac/v4.1l/share/etc 目录,其原因是软件是在用逻辑符名SSI_ETC: 指向的目录,在软件运行是不需要知道这个目录实际的存贮的位置。

使用逻辑符的原因有:
1 使软件与文件系统相互独立
2 缩短访问长目录的字符长度
3 数据标准化
逻辑符有三种类型:
1 系统定义—在translate.ssi 文件中定义
1
2 2 用户定义—在 SSI_ETC:logicals.ssi 文件中定义
3 个性化定义—通过个性化设置/默认的参数选择命令,定义任何的文件,将指定到Surpac 软件中
系统逻辑符是软件安装时进行定义的,存贮在translate.ssi.文件中,系统的逻辑符是软件成功操作所必需的,不能被修改。

下面是一个translate 文件的例子:.
永远不要把你的逻辑符加入到translate.ssi 文件中,因为在软件重新安装时translate.ssi 文件将会重新创建,你所做的修改将会丢失。

用户逻辑符是可选的,通常用于让用户的操作简单化,正如系统逻辑符一样使软件容易对文件定位,用户逻辑符很容易使用户对数据文件和宏文件进行定位。

你能自定义逻辑符指向你的实测数据位置,你可以把所有的宏文件和脚本程序存贮在一起并定义一个像“MACRO : ”这样都比较熟悉的逻辑符,可供所有的人访问。

系统的一个特点是允许用户通过一个标准的名称约定访问数据,而不必担心数据在硬盘上的物理存贮位置,当在网络环境中工作时,这对用户有不同的物理驱动器映射时有特别的好处。

当设计菜单系统和T cl/Scl 脚本时,用户逻辑符同样是一个无价的工具,通过逻辑符可以使菜单和脚本与文件系统相互独立,从而不必担心物理驱动器映射。

这个方法使得
在菜单和脚
本在拷贝到另一台计算机时,只需修改logicals.ssi 文件,而不必修改实际的脚本或菜单定义。

用户逻辑符logicals.ssi 文件中定义,该文件存贮在SSI_ETC: 目录中(这是一个系统逻辑符,它映射到系统存贮etc 文件的目录)。

logicals.ssi 文件可选的,如果它不存在,Surpac软件并不报告错误,然而,如果该文件存在,Surpac软件将加载文件并添加已经定义的逻辑符到系统的逻辑映射中。

除了可以给个性化逻辑符取任意的文件名字外,如mylogicals.txt .,个性化逻辑符和用户逻辑符相似,要使Surpac软件加载个性化逻辑符,必须通过个性化菜单->默认选项设置,在“简写表”中进行设置。

个性化逻辑符文件的格式和logicals.ssi 文件完全一样。

当Surpac软件启动时,按下列顺序加载逻辑符定义文件:
1 从SSI_ETC:文件中加载translate.ssi 系统逻辑符定义
2 从SSI_ETC:文件中加载logcials.ssi 用户逻辑符定义
3 从你定义的个性化逻辑符文件中加载个性化逻辑符定义
如果有重复的逻辑符定义,后读入的起作用,定义重复的逻辑符并不是一个错误,有时为了做某些事还需要这样做,如在个性化逻辑符文件中可以重定义一个SSI_PLOTTING: 逻辑符下面是一个logicals.ssi文件的实例:
MINESOLUTIONS: c:/minesolutions/
MS_SPOOLER: c:/minesolutions/spooler/
MS_STRING: c:/minesolutions/string/
MS_RINGKING: c:/minesolutions/ringking/
MY_MACROS: c:/macros/
文件的结构相当的简单,定义一个逻辑名,后接一个或几个空格,然后定义物理的目录,后接斜杠。

注意尾部斜线是强制性的,可以是正斜线符号或反斜线符号。

提示:强烈推荐在逻辑符后接一个冒号,它提供一个固定的逻辑符结束标记,并且使文件路径易读。

3
提示:由于反斜线符号在T cl脚本中定义转义码,有时产生模糊的
问题,在物理路径中推荐使用正斜线符号而不反斜线符号。

提示:由于Surpac软件不对物理路径存在与否进行检查,要确保物理路径名称正确。

1.2 命令别名
命令别名是一个系统,它提供了一个让你在Surpac中把命令改为其它易记的名字的机制,这对有经验的用户比用命令全名或从菜单、工具栏中执行功能提高了效率。

别名文件的结构很简单,首先是别名,加双引号,接任意数量的空格,然后接命令名,也加双引呈号(甚至可以是前面定义的别名)。

下面是从别名文件中提取出的一部分。

"2DG" "2D GRID"
"2DT" "2D TRANSFORM"
"3DG" "3D GRID"
"3DT" "3D TRANSFORMATION"
"ATP" "ADD TO PERIOD"
"AR" "ADD RIG"
"AB" "APPLY BOUNDARY"
"AII" "ARC ARC INTERSECT"
"AD" "AUDIT DATABASE"
"BS" "BASIC STATISTICS"
"BD" "BEARING AND DISTANCE"
"BR" "BENCH REPORT"
和允许为已有的命令改变名称一样,别名系统也允许你定义新的命令名运行你的Tcl/Scl 脚本。

例如:你写了两个脚本,一个是往数据库中导入.CSV文件,另一个是导出数据库中的表的一个.CSV文件。

后面我们将讲述如何用菜单运行这个文件。

现在用键盘命令运行它。

对于这两个脚本,下面定义两个新命令import_csv 和export_csv 来做这件事:
"IMP ORT_CSV" “MACRO:MY_SCRIPTS:IMPORT_CSV"
4
"EXPORT_CSV" “MACRO:MY_SCRIPTS:EXPORT_CSV"
注意:上面关键字MACRO:的用法,这个关键字告诉Surpac软件这个命令没有映射到Surpac软件内部命令,取而代之的是运行存贮在硬盘上的脚本程序。

注意逻辑符MY_SCRIPTS:的用法,假定逻辑符MY_SCRIPTS:在logicals.ssi 文件中已经有定义,它将映射到宏文件存贮的路径位置。

Surpac软件允许指定9个别名文件。

通过个性化设置->默认选项设置,选择“简写表”你可以为Surpac软件选定一个别名文件,可以包括逻辑符和物理存贮路径。

因此要小心。

5
1.3 键盘映射
键盘映射文件很大程度上是早期版本的软件映射字符。

在Surpac Vision 中它的真正的目的是定义功能键的相关动作。

在这里,你能定义功能键运行你自己编写的脚本程序。

用上面讨论的CSV的例子,keymaps.ssi 文件中提取出的显示如何定义F7和F8键运行导入/导出CSV脚本程序。

"f7" FUNCTION "MACRO:MY_SCRIPTS:IMPORT_CSV"
"f8" FUNCTION "MACRO:MY_SCRIPTS:EXPORT_CSV"
提示:当定义热键时,键的名字要小写(如f10 不是 F10)
总结:
在这章中你学习了为什么逻辑符是程序的重要组成部分,并且学习了如何定义用户逻辑符和个性化逻辑符以及他们之间的不同。

你已经学习了命令改名和如何定义一个执行你自己编写的脚本新命令,你也学习了如何定义一个热键来执行你自己编写的脚本程序。

练习:
1.1
i. 用CONTEXT文本编辑器创建一个logicals.ssi文件,把它存贮在现在安装的Surpac
软件的版本的share/etc 目录中,添加一个DATA:逻辑符,映射到
C:\tcltraining\data目录
ii. 添加另一个逻辑符SCRIPTS:,映射到目录c:\tcltraining\scripts\
iii. 用CONText文本编辑器创建一个名为myFirstScript.tcl的文件,并把它存在c:\tcltraining\scripts 目录中,内容:
puts “My first Tcl script works”
这行在Surpac信息窗中将显示:My first Tcl script works iv 用CONText文本编辑器创建一个名为mycommands.alias的文件, 并把它存在c:\tcltraining\scripts 目录中,文件中有一个执行myFirstScript宏的条目,确
认你在练习的第二步中已经建立了SCRIPTS:逻辑符,为myfirstscript定义别名为
“MFS ”
6
v 一旦你创建了别名文件,你必须让SURPAC软件加载别名文件。

可以通过个性化设置->默认参数设置,选择简写选项卡实现。

vi 定义F12功能键,让他执行步骤3中创建的myFirstScript.tcl 宏文件,要对ETC 目录中的keymaps.ssi 文件进行编辑。

vii
重启Surpac软件,测试别名和热键是否正常。

7
第2章创建菜单和工具栏
概述
通常把一些常用的功能组织在菜单栏和工具栏来实现软件定制,由于你编制了宏文件自动处理日常业务,你同样想把他们定制到菜单和工具栏上。

一旦定制好这些菜单和工具栏,可以存贮为界面并用这个界面进行工作。

这一章我们将学习
创建用户菜单
为用户菜单创建定制的菜单条
创建定制的工具栏
为工具栏创建按钮
2.1 调用菜单和工具栏编辑工具
创建菜单的过程能在Surpac软件中全部完成,而不需要手工编辑一个文本文件。

选择个性化设置->用户菜单/工具栏调用菜单/工具栏编辑器,由于编辑器要调入所有的菜单和工具栏,第一次运行时在编辑工具显示之前要花几秒的时间。

8
2.2 从系统菜单条中创建菜单
右建单击User 文件还夹中的Menubars. ,从弹出的菜单中选择new ,在工具的右边出现一个新的按钮。

一个名为Menubar_1.的按钮将被创建,接下来要对这个按钮改名,可取名为MyMenubar.,右击Menubar_1 钮,弹出菜单,选择edit,或是从工具菜单中选择edit 也可以进入编辑模态,键入新的名字,按回车键。

现在你已经定义了自己的菜单栏,你可以通过编辑工具的copy 和paste按钮把已有的菜单树导入进来,这些功能可通过右击弹出菜单实现,拷贝和粘贴已有的目录的步骤:
9
1 找到想拷贝的目录树并选中
2 选择拷贝按钮
3 选中你的新的菜单栏
4 选择粘贴按钮
2.3 创建自己的菜单条目
要在新建的菜单栏中创建新的菜单条目,需要选中你所建的菜单栏(MyMenuBar),选择new 按钮,或从弹出菜单中选择new,这将产生一个新的菜单,名字可能为Menu_1,把它改名为MyMenu 方法和上面改菜单栏的名字一样,按回车键。

MyMenu 现在还是一个空的下拉菜单,右键单击选择new ,通过子菜单选项可以配置任意数量的菜单条,见下面对话框。

选项含义:
输入描述
条目类别?条目–调用软件的功能或特定的T cl脚本
标签–在菜单上显示的文本信息
分隔符–分隔不相关的菜单的一个横线
单选按钮–特定的意图的触发钮
子菜单–连接下一级的菜单
10
11标签在菜单条上显示的文本
类型
功能:运行Surpac 软件内部的功能 CMD/TCL :调用一个脚本命令 Surpac 软件的功能命令名称或T cl 脚本的全路径。

注意不要用物理路径,要用逻辑符。

图像一个 20x20 像素的gif 格式的图像,显示在菜单标标签的左侧
2.4 创建工具栏
创建一个特定的工具栏,选中 User 文件夹下的. Toolbars 条目,可以通过右键单击或选择工具右侧的new 按钮执行。

一个名为Toolbar_1.的工具栏将被创建,接下来要对这个按钮改名,可取名为MyT oolbar .,右击 Toolbar_1
. 钮,弹出菜单,选择 edit ,或是从工具菜单中选择 edit 也可以进入编辑模态,键入新的名字,按回车键。

现在你已经定义了自己的工具栏,你可以通过编辑工具的copy 和paste 按钮把已有的工具栏按钮导入进来,这些功能可通过右击弹出菜单实现。

注意:你只能粘贴工具栏按钮到当前的工具栏,工具栏不像菜单栏那样分级。

2.5 创建一个定制的按钮到工具栏上
右击工具栏(MyToolBar )或在工具对话框选 new 条目,为工具栏创建工具按钮,显示如下:
输入描述
条目类别?条目–调用软件的功能或特定的T cl脚本
标签–在菜单上显示的文本信息
分隔符–分隔不相关的菜单的一个横线
单选按钮–特定的意图的触发钮
子菜单–连接下一级的菜单
类型功能:运行Surpac软件内部的功能
CMD/TCL:调用一个脚本
命令Surpac软件的功能命令名称或T cl脚本的全路径。

注意不要用物理路径,要用逻辑符。

图像一个20x20 像素的gif格式的图像,显示在菜单标标签的左侧
工具提示描述按钮功能的一些提示性文字
提示:用于图标的映像为20 X20像素。

提示:当鼠标指针在按钮上方时,提示文字便显示出来,使得工具按钮更有效。

总结
在这一章中,向你介绍了工具栏和菜单栏编辑器,如何创建工具栏和菜单栏。

你已经知道了在工具栏之间和菜单栏之间拷贝和粘贴,学习了创建菜单条目和工具按钮。

练习
2.1
创建一个新的用户菜单栏,名为T cl menu.,产生一个下拉菜单,名为Tcl menu scripts. ,再产生一个菜单条目,执行myFirstScript.tcl 脚本
2.2
创建一个新的用户工具栏,名为Tcl T oolbar.,添加一个按钮,同样执行myFirstScript.tcl 脚本,图标可用SSI_share/resources/icons directory.下的任一图标。

12
第3章在T cl脚本中录制一个任务
概述
在Surpac软件中,你每日、周、月所做的大部分事情况都是重复的。

Surpac软件能够把一系列的任务录制到一个脚本中并进行回放,灵活易用的脚本语言允许进行编辑使他们有更广泛的应用。

这一章将学习如下内容:
如何录制和回放T cl/Scl脚本
有关SclFunction 命令
_action动作开关的用法
3.1 录制宏
在软件中录制宏的操作非常简单,只需要给Surpac软件一个信号开始录制你所有的操作,和再次给一个停止录制的信号。

通过点击工具栏上的
软软按钮或F5功能钮结束宏的录制,在信息窗中将显示宏的录制已经完成。

3.2 宏的回放
录制完成宏后,接下来事情很自然的就是回放宏,可按工具栏上的
13
F6功能键回放宏,显示宏的回放对话框,键入宏文件的名字:
注:上面的1至10字段是为了软件向后兼容。

从文件导航器中把宏脚本文件拖入图形工作区或双击文件名也能执行宏,但不显示对话框。

3.3 宏文件结构
回放一个录制的宏文件总是得到相同的结果,通常你希望宏能处理你提供的一个数据集,要想达到这个程度,首先要对宏文件的结构有一个了解,下面是一个简单的录制RECALL FILE 功能的宏文件。

############################################# ########################
#
# Macro Name : c:/tcltraining/scripts/text_03_01.tcl
#
# Version : Surpac Vision V5.2-E
14
#
# Creation Date : Sat Sep 22 09:23:03 2007
#
# Description :
#
############################################# ########################
set status [ SclFunction "OPEN FILE" {
layer="main graphics layer"
location="DATA:pit1.str"
plugin="Surpac String Files"
Surpac={
IDRange=""
range=""
descriptions="true"
}
styles=""
replace="true"
rescale="true"
}]
录制的宏文件总是在开始处包含一个文件头,这部分不执行功能,描述脚本的文件名、Surpac的版本号、创建日期、和对宏的一些描述。

在宏中插入一些注释是一个好的习惯,可以记录你或其它人对宏的一些修改操作。

文件头使用T cl的注释字符(#),在一行中如果首个非“空格”字符是“#”,Tcl解释器忽略这一行。

在脚本中的不同处插入一些注释对程序进行说明,同样是一个好的习惯,尤其是对较大的宏更是有效。

在文件头的下面是你录制的实际功能,上面的例子显示了用Surpac软件中的Scl扩展命令SclFunction.进行录制。

SclFunction 命令带两个参数,一个是Surpac软件功能名,另一个是在大括号内的命令运行的一组特定信息,一个功能包括与用户交
互的窗体的标识号(例frm00236)和一些字段的名字及为这些字段输入的值。

15。

相关文档
最新文档