./features/batch mode
Download Features Source code Forum Ask for support

Batch processing

Analysis Situs is not necessarily an interactive tool. We have designed it in a way to be also used as an SDK and batch processing application. You might prefer using the batch mode for running your fully automated CAD processing workflows. The batch mode, by definition, assumes that there is no user interaction to happen to get the job done. However, there is also a CLI (Command Line Interface) thing that can be used for batch processing and is, in fact, designed for that. In this chapter, we cover all means that Analysis Situs exposes for batch processing and similar scenarios.

Run single script

You can run Analysis Situs without GUI to execute a Tcl script.

asiExe.exe /runscript="<filename>"

Example:

asiExe.exe /runscript="C:/scripts/myscript.tcl"

Make sure to use forward slashes in the path to your script. To redirect output to a file use the following syntax:

asiExe.exe /runscript="C:/scripts/myscript.tcl" > log.txt

In this mode, the Tcl standard channels are not overridden, so all messages and errors will be printed to the standard output.

CLI

The Command Line Interface of Analysis Situs provides you with a traditional terminal-like experience, where you are prompted for a single command at a time.

To run CLI, launch the asiExeCli executable. There are several things to keep in mind about CLI:

  1. The CLI terminal allows you to run all the same commands that are accessible from UI. However, those commands that require UI widgets will do nothing.
  2. The standard output is redirected to the terminal window, so you will see the application messages right in the console.

Server

Overview

To run UDP server, launch the asiExeServer executable. Any external application could connect to the specific port as a UDP client and send datagrams for execution. The server is ready once the "socket is ready" message is printed to the standard output.

The following animation shows a C#-written client communicating by UDP with Analysis Situs Server which is implicitly launched by this client (thanks to Alexis for providing this tool).

This UDP-based headless communication allows for batch processing not limited to a single machine. Here is an example on how to run the CLI server:

asiExeServer.exe /host=127.0.0.1 /port=62001

You can download the C# UDP client for Analysis Situs on our forum. Make sure to fix all absolute paths to be able to run it.

Running on docker

Analysis Situs Server can be build as a docker container with Dockerfile.server dockerfile located in the root directory. By default, the port number 7755 is listened by the UDP server and this same port should be exposed by the running container. In the docker environment under Windows, it is necessary to initialize the containerized server with IP=0.0.0.0 and then connect the host client to the localhost in order for this communication to work.

If the 0.0.0.0 IP-address is not used to launch the dockerized server, any datagrams sent by a UDP client would not be consumed by the server. The following command runs the docker container named "asitus-server". A client code should open connection to "127.0.0.1:7755" to communicate with this server.

docker run --rm -it -e DISPLAY=192.168.1.42:0.0 -p 7755:7755/udp asitus-server:latest

It should be noted that the server (as well as CLI) works in a headless mode, so any Active Script commands that employ visualization would not work.