Name
END_EXIT
Syntax
END
oder (ab ArchiCAD 10)
END ausdruck1 [,ausdruck2, ... ausdruckn]
oder
EXIT
oder (ab ArchiCAD 10)
END ausdruck1 [,ausdruck2, ... ausdruckn]
oder
EXIT
ausdrucki, Typ string oder real, je nach zugehörigem Variablentyp im Hauptobjekt
Beendet die Ausführung eines Skriptes unmittelbar nach dem Befehl, auch wenn danach noch weitere Befehle folgen. Endet das Skript in der letzten Programmzeile, ist der Befehl nicht zwingend nötig.
Da es mehrere Skripte für die unterschiedlichen Situationen (3D-Fenster, Grundriss, Objekteinstellungsfenster) gibt, die nacheinander abgearbeitet werden, beendet der Befehl nur das Skript, in dem er steht, nicht ein evt. nachfolgendes. Wird END/EXIT innerhalb eines Makros verwendet, wird lediglich das Makro beendet und im übergeordneten Skript die Ausführung fortgesetzt.
Ausnahme ist das Master-Skript, das immer vor allen anderen Skripts durchlaufen wird. Ein END oder EXIT dort beendet alle Skripte (dieser Hierarchieebene) und erzeugt ein Objekt ohne Inhalt.
Die Verwendung von END (an Stelle von EXIT) stellt die gebräuchlichere Syntax dar.
Ab ArchiCAD® 10 wird ein Mechanismus eingeführt, der die Datenübergabe zwischen Makro und Hauptobjekt ermöglicht. Dazu wird dem END (im Makroobjekt) eine Liste von Ausdrücken (ausdrucki) (feste oder berechnete Werte oder Variablen) angehängt. Diese Werte werden in der Reihenfolge ihrer Auflistung im END-Befehl der Liste von Variablen(namen) zugewiesen, die im aufrufenden Hauptobjekt wiederum im CALL-Befehl nach dem Schlüsselwort RETURNED_PARAMETERS aufgeführt sind.
Es können auch Arrays übergeben werden. Allerdings werden alle Werte eines Arrays in nur einer Dimension des Zielarrays abgelegt. D.h. die Werte eines Arrays quelle[2][3] im Makro werden im aufrufenden Objekt in der Zielvariablen z.B. als Array ziel[6] abgelegt. Eine zuvorige Deklarierung der Arrayvariablen mit DIM ist obligatorisch. Die Abmesungen der Dimensionen des Arrays werden aber abhängig von der Anzahl der Werte im Makroobjekt bei der Übergabe angepaßt. Es ist nutzlos die Deklaration zweidimensional anzulegen. Nach RETURNED_PARAMETERS enthält das Array in jedem Fall alle Werte in einer Spalte (z.B. ziel[1][6]). Die Werte werden zeilenweise aneinandergereiht.
Diese Funktionalität stellt die Umkehrung der Datenübergabe an das Makro mit PARAMETERS dar. Es können auch Texte übergeben werden.
Da es mehrere Skripte für die unterschiedlichen Situationen (3D-Fenster, Grundriss, Objekteinstellungsfenster) gibt, die nacheinander abgearbeitet werden, beendet der Befehl nur das Skript, in dem er steht, nicht ein evt. nachfolgendes. Wird END/EXIT innerhalb eines Makros verwendet, wird lediglich das Makro beendet und im übergeordneten Skript die Ausführung fortgesetzt.
Ausnahme ist das Master-Skript, das immer vor allen anderen Skripts durchlaufen wird. Ein END oder EXIT dort beendet alle Skripte (dieser Hierarchieebene) und erzeugt ein Objekt ohne Inhalt.
Die Verwendung von END (an Stelle von EXIT) stellt die gebräuchlichere Syntax dar.
Ab ArchiCAD® 10 wird ein Mechanismus eingeführt, der die Datenübergabe zwischen Makro und Hauptobjekt ermöglicht. Dazu wird dem END (im Makroobjekt) eine Liste von Ausdrücken (ausdrucki) (feste oder berechnete Werte oder Variablen) angehängt. Diese Werte werden in der Reihenfolge ihrer Auflistung im END-Befehl der Liste von Variablen(namen) zugewiesen, die im aufrufenden Hauptobjekt wiederum im CALL-Befehl nach dem Schlüsselwort RETURNED_PARAMETERS aufgeführt sind.
Es können auch Arrays übergeben werden. Allerdings werden alle Werte eines Arrays in nur einer Dimension des Zielarrays abgelegt. D.h. die Werte eines Arrays quelle[2][3] im Makro werden im aufrufenden Objekt in der Zielvariablen z.B. als Array ziel[6] abgelegt. Eine zuvorige Deklarierung der Arrayvariablen mit DIM ist obligatorisch. Die Abmesungen der Dimensionen des Arrays werden aber abhängig von der Anzahl der Werte im Makroobjekt bei der Übergabe angepaßt. Es ist nutzlos die Deklaration zweidimensional anzulegen. Nach RETURNED_PARAMETERS enthält das Array in jedem Fall alle Werte in einer Spalte (z.B. ziel[1][6]). Die Werte werden zeilenweise aneinandergereiht.
Diese Funktionalität stellt die Umkehrung der Datenübergabe an das Makro mit PARAMETERS dar. Es können auch Texte übergeben werden.
FOR i=1 TO 10
GOSUB 100
ADD2 1,0
NEXT i
DEL i
END
100:
! Unterprogramm
RECT2 0,0, 0.75,0.25
RETURN
Beendet das Programm vor dem Unterprogramm, da es sonst zu einer Fehlermeldung käme.
GOSUB 100
ADD2 1,0
NEXT i
DEL i
END
100:
! Unterprogramm
RECT2 0,0, 0.75,0.25
RETURN
Beendet das Programm vor dem Unterprogramm, da es sonst zu einer Fehlermeldung käme.
Siehe zum Datenaustausch zwischen Makros und Hauptobjekten mittels Pufferspeicher Tipps und Tricks unter dem CALL-Befehl.