Tcl Tk Introduction
eryar@163.com
摘要Abstract:Tcl/Tck脚本可以很容易实现用户自定义的命令,方便的创建图形化的用户界面GUI,所以Tcl和Tk的应用领域几乎覆盖了图形和工程应用的全部范围,包括计算机辅助设计、软件开发、测试、仪器控制、科学可视化及多媒体方面。即可以使用Tcl/Tk实现AVEVA中的PML类似的功能,允许用户自己编写简单程序实现程序的二次开发。
关键字Key Words:AVEVA, PDMS, PML, Tcl/Tk, Script Modeling
一、PML of AVEVA
看到AVEVA的解决方案中有一个方便灵活的用户自定义语言PML(the AVEVA Programmable Macro Language),通过PML可以根据不同的用户需求来对程序进行扩展,而AVEVA则可以专注于核心模块的开发与完善。这对软件开发而言,是很有益处的,可以在满足各种用户多变的需求的情况下保证软件的质量。使用PML实现一个简单的窗口代码及效果如下图所示:
Figure 1.1 Hello World Form code of PML
Figure 1.2 A simple Form of PML
二、Tcl/Tk
Tcl表示“Tool Command Language”。在学习OpenCascade的过程中,看到OpenCascade的一个测试工具Draw Test Harness就是使用了Tcl/Tk来实现自定义的命令。通过自定义的命令,即可以对一些功能进行测试,如下图所示,使用简单命令,即可以生成图形:
Figure 2.1 Draw Test Harness with Tcl/Tk
Netgen是一个用于网格剖分的程序,它的用户界面也是用Tcl/Tk来实现的,效果也不错,如下图所示:
Figure 2.2 Pipe Model in Netgen
三、结论 Conclusion
Tcl和Tk一起为应用程序开发者和使用者提供了很多好处。首先是快速开发。很多有意思的应用程序完全可以用Tcl脚本编写。这样就可以在比C/C++或Java更高的层次上进行开发,Tk隐藏了C或Java程序员必须关注的很多细节。与低级工具相比,要使用Tcl和Tk所需要学习的知识更少,需要编写的代码更少。通过几个小时的学习,Tcl/Tk新手用户就可以创建有意思的用户界面,很多开发人员从其他工具集转而使用Tcl和Tk工具集后,应用程序开发所需要的代码数量和开发时间都减少了90%。
Tcl和Tk适于快速开发的另一个原因在于Tcl是解释语言,使用Tcl应用程序时,可以在运行中生成和使用新脚本,而无需重新编译和重启应用程序。
Tcl可以跨平台,这意味着在一个平台如Linux上开发的程序,在大多数情况下可以不加改动的在另一个平台上运行,如在Windows上或Macintosh上运行。
Tcl还是第一种拥有原生Unicode支持的动态语言。因此,Tcl可以处理这个世界上几乎所有的书面语言。
使用Tcl的另一个显著优点在于它和它的大多数扩展都是免费的开源软件,允许所有人免费下载、查看、修改及再发布。
另外,Tcl还可以让应用程序很容易地拥有强大的脚本功能。例如为要一个已经存在的程序添加脚本功能,您只需要实现几条新的Tcl命令,用来为应用程序提供相应的基本功能。然后,把您的新命令和Tcl库链接起来生成全功能的脚本语言,该语言就包含了Tcl提供的命令和您编写的那些命令。
Tcl还为用户提供了方便。一旦学习了Tcl/Tk就能为任何Tcl和Tk应用程序编写脚本,只需要学习该应用程序特有的少数几条命令即可。这使得更多的用户有能力对应用程序进行个性化改造和强化。
如果不借助别的软件自己来实现一个AVEVA中的PML类似的功能,可能要涉及很多知识,如编译原理,计算机系统等很多很多,编写出来的程序即使能用,可能质量也不好。正如荀子所言:“君子性非异也,善假于物也”;牛顿也说“我不知道在别人看来,我是什么样的人;但在我自己看来,我不过就像是一个在海滨玩耍的小孩,为不时发现比寻常更为光滑的一块卵石或比寻常更为美丽的一片贝壳而沾沾自喜,而对于展现在我面前的浩瀚的真理的海洋,却全然没有发现。如果说我比别人看得更远些,那是因为我站在了巨人的肩上。”如果借助于巨人的力量,使用Tcl就可以方便的实现PML类似的功能,现在需要做的就是对前人知识的学习与使用。