coord-transf.2d elements3d elementsnon geo scriptsfunctionscontrol statem.attributesvariousaddons
generallinesfillsmaterialstextextended
FILL DEFINE FILL DEFINE FILLA DEFINE SYMBOL_FILL DEFINE SOLID_FILL DEFINE EMPTY_FILL FILLTYPES_MASK
Name
DEFINE_SYMBOL_FILL
Syntax
DEFINE SYMBOL_FILLname [,] [FILLTYPES_MASK fill_category,]
bitmap_pattern1, ..., bitmap_pattern8,
frequencyX, translationY,
translationX, frequencyY,
angle, scalingX, scalingY,
makroname [[,] 
PARAMETERS [name1= value1, ... namen= valuen]]
[[,] 
ADDITIONAL_DATA [external_name1= external_value1, ... external_namen= external_valuen]
Aufklappen Range
name, Typ Text
fill_category, Typ integer (*)
0 ≤ bitmap_patterni < 256, Typ integer
frequencyX ≥ 0, Typ real
frequencyY ≥ 0, Typ real
translationX ≥ 0, Typ real
translationY ≥ 0, Typ real
angle, Typ real
scalingX, Typ real
scalingY, 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

(*) since ArchiCAD® 9 mit fill_category=j1+j2+j3
 j1=1: Schraffur ist Bauteilschraffur
 j2=2: Schraffur ist Deckschraffur
 j3=4: Schraffur ist Zeichenschraffur
Aufklappen Description
Definiert wie DEFINE FILL einen Schraffurtyp, jedoch nicht aus linearen Bestandteilen sondern aus komplexeren Zeichnungselementen 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 Schraffurdefinition über das Optionenmenü erlaubt sind: Linien, Kreise, Polygone (als Linienzüge, nicht Flächen) und Fangpunkte. Fangpunkte erzeugen graphische Punkte, keine tatsächlichen Fangpunkte. Auch Transformationen des Koordinatensystems mit ADD2 und ROT2 sind möglich.

Alle Parameter werden mit den Skalierungsfaktoren (scalingX/scalingY) multipliziert. Siehe Abbildung. Der Faktor 1 für die Vergrößerung bewirkt eine absolute Maßangabe in Metern (auf dem Papier).Mit scaling=1000/GLOB_SCALE erreicht man eine maßstäbliche Darstellung. Die Maßangaben sind dann in Meter im Plan. Eine homogene (scalingX=scalingY) natürlich vorausgesetzt.

Auf die absoluten Abmessungen der Zeichnungselemente innerhalb des Makros haben die Skalierungsfaktoren die gleiche Auswirkung.

Grundtransformation vor der eigentlichen Schraffurdefinition ist wie bei allen anderen Schraffurdefinition die Drehung des Bezugssystems um angle.

Die im Makro erzeugten 2D-Elemente werden dann. ausgehend vom Nullpunkt, mit einem Rapport von frequencyX in X-Richtung und von frequencyY in Y-Richtung aneinandergereiht. Eine Überlappung der sich wiederholenden Elemente ist im Gegensatz zu Symbollinien möglich.

Zusätzlich zum Rapport kann in die beiden Richtungen X und Y auch jeweils noch ein inkrementeller Versatz vorgesehen werden: translationX und translationY. Siehe Abbildung.

Das since ArchiCAD 9 optionale Syntaxfragment FILLTYPES_MASK wird ebenso wie die Sektion ADDITIONAL_DATA separat erläutert.
Aufklappen Example
Das Hauptobjekt:

! HAUPTOBJEKT
! Zeichnungssymbol, platzierbar
! Grundwerte: a=3; b=3

DEFINE SYMBOL_FILL "Zacken" 0,0,0,0,0,0,0,0,
 ! frequenzX, frequenzY, verschiebungX, verschiebungY,
 0.75,0.75,0.75,0.25,
 ! winkel, skalierungX, skalierungY,
 15, 100/GLOB_SCALE , 100/GLOB_SCALE,
 !Makro
 "selfgdl_ZACKEN.gsm" PARAMETERS a=0.5, b=0.5

FILL "Zacken"

poly2_B 4,2+4,SYMB_VIEW_PEN,0, 0,0,0,a,0,0,a,b,0,0,b,0



Das Makroobjekt "selfgdl_ZACKEN.gsm":

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

line2 0,0, a/2,b
line2 a/2,b, a,0
Aufklappen Specialities
Siehe DEFINE FILL-Befehl - Besonderheiten.

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

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

Der GET-Befehl innerhalb von DEFINE SYMBOL_FILL kann bis ArchiCAD 9 Fehlermeldungen im Skript verursachen. Es kann nicht mehr als 1 Wert vom Stapelspeicher mit einem GET() abgerufen werden. Z.B ist statt GET(2) gleichbedeutend GET(1), GET(1) zu verwenden.

Das optionale Komma (,) vor FILLTYPES_MASK, PARAMETERS und ADDITIONAL_DATA wurde mit ArchiCAD 10 eingeführt, um mit den Befehlsteilen eine neue Programmzeile beginnen zu können, und war zuvor nicht erlaubt. Diese Quellcodelayout-unterstützende Option sollte since ArchiCAD 10 verwendet werden.
Aufklappen Context
2D-Skript, 3D-Skript, MASTER_GDL
Aufklappen ArchiCAD®
since 8.0
Aufklappen Tips and Tricks
Der Befehl entspricht der Symbolschraffur, die graphisch unter Optionen>Schraffurtypen vorgenommen werden kann. Die dortigen Parameter entsprechen denen des Befehls wie folgt:

frequencyX = X1
translationY = Y1
translationX = X2
frequencyY = Y2
Download Beispielobjekt für ArchiCAD 8.1 und höher.
Aufklappen References
GDL-Handbuch 8.0 (DE) p. 107/110
GDL-Handbuch 8.1 (DE) p. 109/111
GDL-Handbuch 9.0 (DE) p. 174/180
GDL-Handbuch 10.0 (DE) p. 172/178
GDL-Handbuch 11.0 (DE) p. 177/184
GDL Reference Guide 9.0 (INT) p. 169/175
GDL Reference Guide 10.0 (INT) p. 171/177
GDL Reference Guide 11.0 (INT) p. 171/177
 






fx=frequenzX*skalierungX
fy=frequenzY*skalierungY
vx=verschiebungX*skalierungX
vy=verschiebungY*skalierungY