coord-transf.2d elements3d elementsnon geo scriptsfunctionscontrol statem.attributesvariousaddons
generallinesfillsmaterialstextextended
LINE_TYPE LINE_PROPERTY DEFINE LINE_TYPE DEFINE SYMBOL_LINE
Name
DEFINE_SYMBOL_LINE
Syntax
DEFINE SYMBOL_LINEline_name scaling, distance, macroname[[,] PARAMETERS [name1= value1, ... namen= valuen]]
[[,] 
ADDITIONAL_DATA [external_name1= external_value1, ... external_namen= external_valuen]
Aufklappen Range
line_name, Typ Text
0 < scaling, Typ real
distance, Typ real
makroname, Typ string
namei, gültiger Parametername innerhalb des Makroobjektes
valuei, Typ real oder string, abhängig vom Parameter namei im Makro

external_namei, in der externen Anwendung verwendeter Parametername
external_valuei, Ausdruck oder Wert, Typ abhängig von der externen Anwendung

Maximale Anzahl von 2D-Elementen in Makro: 8369.
Maximale Breite: 4.25 * GLOB_SCALE (5397.5 mm)
Maximale Höhe: 1 * GLOB_SCALE (1270 mm)
Aufklappen Description
Definiert wie DEFINE LINE_TYPE einen Linientyp, jedoch nicht aus linearen Bestandteilen sondern aus komplexeren Elementen als Symbollinie. Dazu wird zur Beschreibung des "Symbols" ein Makro (makroname) aufgerufen, in dem die graphischen Anweisungen erfolgen. Dem Makro können, analog zum CALL-Befehl Parameter übergeben werden. Diese werden, durch Kommata getrennt, als (Parameter)namei=valuei-Zuweisungen nach dem Schlüsselwort PARAMETERS angeführt.

Im Makro zulässig sind ausschließlich 2D-Zeichnungselemente, die auch bei der Liniendefinition über das Optionenmenü erlaubt sind: Linien, Kreise, Polygone (als Linienzüge, nicht Flächen) und Fangpunkte. Auch Transformationen des Koordinatensystems mit ADD2 und ROT2 sind möglich.

Die absoluten Abmessungen der Zeichnungselemente innerhalb des Makros werden ignoriert. Lediglich die Proportionen bleiben erhalten. Nach dem Durchlauf des Makros werden (intern) die maximalen Abmessungen des Symbols ermittelt (xmax,ymax) und mit scaling auf die Zielgröße skaliert. Es ergeben sich die Abmessungen:

  x=scaling
  y=scaling * ymax/xmax

Der Faktor für die Vergrößerung hat wie bei DEFINE LINE_TYPE bei einer Zielbreite des Symbols von x folgende Wirkungen:

 scaling=x: absolut, Maßangabe in Metern (auf dem Papier).
 scaling=x/1000 : absolut, Maßangabe in mm (auf dem Papier).
 scaling=x*1000/GLOB_SCALE  : maßstäblich, Maßangaben in Meter (im Plan).

Die erzeugten 2D-Elemente werden mit distance in X-Richtung aneinandergereiht. Eine Überlappung der sich wiederholenden Elemente ist nicht möglich.

Das Symbol wird immer mittig zur Konstruktonslinie ausgerichtet, also je y/2 ober- und unterhalb der Zeichenlinie.

Das since ArchiCAD 9 verfügbare Syntaxfragment ADDITIONAL_DATA wird separat erläutert.
Aufklappen Example
Das Hauptobjekt:

! HAUPTOBJEKT
! Zeichnungssymbol, platzierbar
! Grundwerte: a=0.04; b=0.1

! Abmessungen der Schlinge
a=0.04 ! Breite (=Durchmesser)
b=0.10 ! Höhe

faktor=1000/GLOB_SCALE
DEFINE SYMBOL_LINE "Symbollinie GDL" a*faktor, 0,  "selfgdl_SCHLINGE.gsm" PARAMETERS a=a, b=b

LINE_TYPE 1
LINE2 0,0, a,0

LINE_TYPE "Symbollinie GDL"
LINE2 0,b, a,b



Das Makroobjekt "selfgdl_SCHLINGE.gsm":

! MAKROOBJEKT
! Zeichnungssymbol, nicht platzierbar
! Grundwerte: a=0.04; b=0.1

! Grundwerte
t=a/2 ! Radius der Schlinge
d=b-a ! Höhe des Zwischenbereichs

! siehe Kreisbogenversatz
s=sqr((t/2)^2+(d/2)^2)/2
alpha=atn(d/t)
w=2*(90-alpha)
r=s/cos(alpha)

! Schleifenbögen links unten
ARC2 0,t, t, 270,360
ARC2 t-r,t, r, 0,w

! Schleifenbögen oben
ARC2 r, b-t, r, 180, 180+w
ARC2 t, b-t, t, 0, 180
ARC2 a-r,b-t, r, 360-w,360

! Schleifenbögen rechts unten
ARC2 a, t, t, 180,270
ARC2 t+r,t, r, 180-w,180

! Ober- / Unterlinie
POLY2_ 4,1, 0,0,1, a,0,0, a,b,1, 0,b,0
Aufklappen Specialities
Siehe auch unter DEFINE LINE_TYPE Besonderheiten.

Im Makro verwendete Attribute der Zeichnungselemente werden ignoriert. Mehrfarbige Linien oder Linienstücke als Nicht-Volllinie sind demnach nicht möglich.

Dynamische Linien, durch ein kontextabhängiges Makroobjekt, sind mit DEFINE SYMBOL_LINE nicht möglich. In der Linientypenliste wird mit dem neu definierten Linientyp nicht das Makro sondern die vom Makro zum Zeitpunkt der Abarbeitung erzeugten graphischen Elemente verknüpft. Entscheidend für die Ausgestaltung der Linie ist der Zeitpunkt der Abarbeitung des Hauptobjektes.

Das optionale Komma vor PARAMETERS und ADDITIONAL_DATA ist erst since ArchiCAD 10 zulässig und erlaubt so eine bessere Formatierung des Skriptes durch die Möglichkeit eines Zeilenumbruchs.
Aufklappen Context
2D-Skript, MASTER_GDL-Objekt
Aufklappen ArchiCAD®
since 8.0
Aufklappen Tips and Tricks
Man kann mit etwas Mühe so auch einen Schriftzug als Linie definieren. Siehe Threads im ArchiCADwiki-Tip of the month (EN) und im ArchiForum (DE).
Download Beispielobjekt für ArchiCAD 8.1 und höher.
Aufklappen References
GDL-Handbuch 8.0 (DE) p. 108/110
GDL-Handbuch 8.1 (DE) p. 110/111
GDL-Handbuch 9.0 (DE) p. 175/180
GDL-Handbuch 10.0 (DE) p. 174/178
GDL-Handbuch 11.0 (DE) p. 180/185
GDL Reference Guide 9.0 (INT) p. 171/175
GDL Reference Guide 10.0 (INT) p. 173/177
GDL Reference Guide 11.0 (INT) p. 173/177