Der GOTO- und GOSUB Befehl

mit dem GOTO (Go to - Gehe Zu) Befehl können wir im Script zu Sprungmarken hinspringen. Normalerweise wird ein Script ja stur von oben nach unten, Zeile für Zeile abgearbeitet. Wir können den GOTO Befehl nutzen um im Script zu springen. Aber dafür müssen wir im Script zuerst Sprungmarken definieren.

Eine Sprungmarke ist eine Zahl, die von einem Doppelpunkt begleitet wird. Normalerweise werden in einem Script die Sprungmarken der Reihe nach aufwärts gezählt.

Folgendes Script soll nur als Beispiel dienen,:

10:
BLOCK 1,1,1
ADDX 2
BLOCK 1,1,1
ADDX 2
20:
CYLIND 1,1

Dieses Script erzeugt folgendes 3D-Fenster:

Wenn wir jetzt einen GOTO Befehl einfügen:

10:
BLOCK 1,1,1
ADDX 2
GOTO 20
BLOCK 1,1,1
ADDX 2
20:
CYLIND 1,1

Dann springt das Script von der Zeile mit dem GOTO-Befehl direkt in die Zeile, die mit der Sprungmarke 20 beginnt. der 2. BLOCK und das ADDX 2 wird also "übersprungen":

Meistens wird man den GOTO-Befehl mit einer IF-THEN Bedingung verbinden:

Wahrscheinlich viel wichtiger als der GOTO-Befehl ist der GOSUB-Befehl:

GOSUB ist ein Sprung zu einer Unterroutine. Am Ende dieser Unterroutine steht dann ein RETURN-Befehl, der das Script veranlasst, zum GOSUB-Befehl zurückzuspringen.

Ein praktisches Beispiel wäre wieder unser Tischscript:

BLOCK FS, FS, ZZYZX
ADDX A-FS
BLOCK FS, FS, ZZYZX
ADDY B-FS
BLOCK FS, FS, ZZYZX
ADDX -(A-FS)
BLOCK FS, FS, ZZYZX
ADDY -(B-FS)
ADDZ ZZYZX
BLOCK A, B, PS

 

hier wird ja 4x derselbe Fuß verwendet. Diesen Fuß können wir in eine SUB-Routine auslagern. Dazu ändern wir das Script wie folgt ab.

GOSUB 20
ADDX A-FS
GOSUB 20
ADDY B-FS
GOSUB 20
ADDX -(A-FS)
GOSUB 20
ADDY -(B-FS)
ADDZ ZZYZX
BLOCK A, B, PS
END
20:
BLOCK FS, FS, ZZYZX
RETURN

Dieses Script hat jetzt den Vorteil, wenn wir die Form des Fußes ändern wollen, müssen wir es nicht mehr 4x ausbessern sondern nur noch 1x.

Der END-Befehl ist da, um das Script vor der Sub-Routine zu stoppen, da sonst ein 5. Fuß erstellt werden würde.