Skriptdatei auswählen und ausführen

Sie können in Vissim externe Skriptdateien auswählen und ausführen. Folgende Skriptsprachen werden unterstützt:

Nicht unterstützt werden:

  • Der Wrapper wxPython
  • Die Python-Distribution anaconda

Tipp: Sie können auch Skripte in der Netzdatei verwalten, die während einer laufenden Simulation zu gewünschten Zeitpunkten ausgeführt werden (Ereignisbasierte Skriptdateien verwenden).

Die globale Variable Vissim kann ohne Initialisierung im Skript verwendet werden und verweist stets auf das laufende Vissim, aus dem das Skript gestartet wurde. Zusätzlich können Sie mit der Variable CurrentScript auf das aktuelle Skript verweisen, um dort beispielsweise auf benutzerdefinierte Attribute zuzugreifen.

Am Anfang des Skripts braucht kein Vissim-Objekt mit CreateObject erzeugt werden, da Vissim bereits gestartet ist. Falls im Skript weitere Instanzen von Vissim benötigt werden, können Sie CreateObject verwenden.

Skripte können den gesamten Befehlsumfang der verwendeten Skriptsprache verwenden, beispielsweise Schleifen, Verzweigungen, Eingabefunktionen und Ausgabefunktionen.

Skripte dürfen keine globalen Deklarationen enthalten.

Skriptdatei ausführen

1.  Wählen Sie im Menü Aktionen > Skriptdatei ausführen.

Ein Fenster öffnet sich.

2.  Wählen Sie das Verzeichnis aus, in dem die Skriptdatei gespeichert ist.

3.  Wählen Sie die gewünschte Skriptdatei aus.

4.  Klicken Sie auf die Schaltfläche Öffnen.

Die Skriptdatei wird in Vissim ausgeführt.

Beispiele für Skriptdateien

Sie finden in folgendem Verzeichnis ein Vissim-Netz, das Skriptdateien verwendet: ..\Examples Training\COM\Drop-off Zone. Das Beispiel gibt es für Visual Basic Script (VBS) und Python.

Mit den beiden folgenden Skripten wird die Belastung des ersten Zeitintervalls jedes Zuflusses halbiert.

Beispiel 1 für eine Skriptdatei *.vbs

For each flow in all_flows
For i = 1 To all_flows.Count
flow.AttValue("Volume(1)") = 0.5 * flow.AttValue("Volume(1)")
Next

Beispiel 2 für eine Skriptdatei *.vbs

all_flows = Vissim.Net.VehicleInputs.GetAll
For i = 0 To UBound (all_flows)
all_flows(i).AttValue("Volume(1)") = 0.5 * all_flows(i).AttValue("Volume(1)")
Next

Übergeordnetes Thema:

COM-Schnittstelle einsetzen