TCL Script - Schleifen und Objekt-IDs

Eine Liste von AllplanBridge-Objekten ist durch das erste Objekt, das letzte Objekt und die Anzahl der Objekte definiert. Die IDs sind temporär. Um die Objekte in einer for-Schleife zu durchlaufen, benötigt man die folgenden Kommandos:

Kommandos OBJNEXT und OBJPREV

Aufruf

Argument

Bedeutung

[OBJNEXT id]

OBJID

Die ID des Nachfolgers des Objektes mit der ID id wird zurückgegeben. Falls id = 0 oder id ist das letzte Objekt der Liste, dann wird 0 zurückgegeben.

[OBJPREV id]

OBJID

Die ID des Vorgängers des Objektes mit der ID id wird zurückgegeben. Falls id = 0 oder id ist das erste Objekt der Liste, dann wird 0 zurückgegeben.

TCL-Arrays als Rückgabewert von Kommandos

Falls die Array-Werte nicht bekannt sind, lassen sich diese abfragen (s. Beispiel). Da die AllplanBridge-Objekte zukünftig auch erweitert werden, können später neue Array-Werte hinzukommen. Die bisherigen bleiben aber gültig.

Beispiel einer Schleife über alle Achsen

array set axes [ABMAXES GET LIST]

if { $axes(count) > 0 } {

set ID $axes(first)

for { set iaxis 0 } { $iaxis < $axes(count) } { incr iaxis } {

if { $iaxis > 0 } { set ID [OBJNEXT $ID] }

ABMINFO " Axis ID:" $ID

# Zurücksetzen der Array-Variable axis

array unset axis

array set axis [ABMAXIS $ID GET]

ABMINFO " Axis " $axis(name) ":"

ABMINFO " ---------------------"

# Ausgabe aller Array-Einträge

foreach {key value} [array get axis] {

ABMINFO " " $key " = " $value

}

}

}

Die Informationen aller bestehenden Achsen werden im Log-Bereich ausgegeben.