Run Scripts
Tcl/Tk scripts can be run in several ways.
- From the File menu, using the option
- From the Standard toolbar, using the Run Tcl Script button
- From a command file using *evaltclscript()
- Starting HyperWorks using the -tcl <filename> option
- Starting HyperWorks Batch using hmbatch -tcl <filename>
To run a Tcl/Tk script from the command window, use the
source command along with the script filename.
source test.tcl
Note that the source command comes in two variants. The first is the Tcl command source, using a lower-case "s". This command requires the full path. If no path
is specified, HyperWorks will look in the current working
directory, which can be determined using the pwd
Tcl command. The second is the HWT command Source,
using an upper-case "s". This command causes HyperWorks to
search through its pre-set script directories, defined with the TCL_INCLUDE environment
variable, to look for the script. Thus, to search for the script called
test.tcl and run the first found instance of
it:
::hwt::Source test.tcl
To run test.tcl from a specific
location:
source C:/My_scripts/test.tcl
Also note that Tcl/Tk requires the use of the forward slash /
for the pathname separator character, as the backward slash \ is a special reserved
character. As an example:
source C:/My_scripts/test.tcl
instead of
source C:\My_scripts\test.tcl
It is also necessary to use quotes " " or curly braces { } to encapsulate pathnames
containing
spaces:
source "C:/Documents and Settings/Paul/My Documents/test.tcl"
or
source {C:/Documents and Settings/Paul/My Documents/test.tcl}
A Tcl/Tk script may also be run from within a command file by
using the *evaltclscript command. When the command file is run, the
script is executed. This is useful when running a Tcl/Tk
script upon launching HyperWorks or in batch mode. As an
example, to run the script my_script.tcl, in the command file you would
use:
*evaltclscript("C:/My_scripts/my_script.tcl",0)
A command file may also be run by invoking HyperWorks using the -tcl<filename> option. This option launches a HyperWorks session and executes the script specified by <filename>. If *quit appears in the script HyperWorks will exit, otherwise HyperWorks will remain open.
The final option is to invoke HyperWorks in batch mode using hmbatch -tcl<filename>. HyperWorks batch mode does not launch a graphical display so any commands in the script that require a display are ignored or will generate an error. Once the script is complete, HyperWorks will exit, regardless of the existence of *quit in the script.