SCL Scripts
An SCL Script is a file containing a sequence of SCL statements that are executed
top-to-bottom, much like typing them into the console one by one. Scripts are useful for
automating multi-step tasks that would be tedious to enter interactively.
Difference from modules
|
Module |
Script |
| Contents |
Named function/type definitions |
Executable statements |
| Executed when |
Called from code or console |
Run explicitly |
| Can define reusable functions |
Yes |
Limited (local to script) |
| Can import modules |
Yes |
Yes |
| Typical use |
Library code, reusable utilities |
One-off automation, batch operations |
Creating a script
- In the Model Browser, right-click the library node where you want the script.
- Select New → SCL Script.
- Enter a name for the script.
The script editor opens. Write SCL statements, one per line (or use blank lines for
readability). Statements are executed in order.
Running a script
Right-click the script node in the Model Browser and select Run SCL Script. Output
from print and other printing functions appears in the SCL Script Output window.
Running a script from the console
Any plain-text .scl file on the file system can be executed from the SCL Console:
runFromFile "c:/path/to/myscript.scl"
Remember that \ is an escape character in strings; either use / as the path
separator or double the backslashes:
runFromFile "c:/data/setup.scl"
runFromFile "c:\\data\\setup.scl"
Example script
The following script imports Apros/Legacy, creates two points and a pipe, and prints a
confirmation message:
import "Apros/Legacy"
aadd "MYDIAGRAM" "Point" "PO01" (50.0, 50.0)
amodi "PO01" "PO11_PRESSURE" 0.2
aadd "MYDIAGRAM" "Point" "PO02" (100.0, 50.0)
amodi "PO02" "PO11_PRESSURE" 0.1
aadd "MYDIAGRAM" "Pipe" "PIP01" (75.0, 50.0)
amodi "PIP01" "PI12_CONNECT_POINT_1" "PO01"
amodi "PIP01" "PI12_CONNECT_POINT_2" "PO02"
print "Model configuration complete."
Importing modules in scripts
Modules are imported at the top of the script using the same syntax as in modules:
import "Simantics/DB"
import "Apros/Legacy"
The imported names are available for the rest of the script's statements.
|