Name
DEFINE_SYMBOL_FILL

Syntax
DEFINE SYMBOL_FILL name [,] [FILLTYPES_MASK schraffurart,]
bitmapmuster1, ..., bitmapmuster8,
frequenzX, verschiebungY,
verschiebungX, frequenzY,
winkel, skalierungX, skalierungY,
makroname [[,] 
PARAMETERS [name1= wert1, ... namen= wertn]]
[[,] 
ADDITIONAL_DATA [name_extern1= wert_extern1, ... name_externn= wert_externn]

Aufklappen Wertebereiche
name, Typ Text
schraffurart, Typ integer (*)
0 ≤ bitmapmusteri < 256, Typ integer
frequenzX ≥ 0, Typ real
frequenzY ≥ 0, Typ real
verschiebungX ≥ 0, Typ real
verschiebungY ≥ 0, Typ real
winkel, Typ real
skalierungX, Typ real
skalierungY, Typ real
makroname, Typ string
namei, gültiger Parametername innerhalb des Makroobjektes
werti, Typ real oder string, abhängig vom Parameter namei im Makro

name_externi, in der externen Anwendung verwendeter Parametername
wert_externi, Ausdruck oder Wert, Typ abhängig von der externen Anwendung

(*) ab ArchiCAD® 9 mit schraffurart=j1+j2+j3
 j1=1: Schraffur ist Bauteilschraffur
 j2=2: Schraffur ist Deckschraffur
 j3=4: Schraffur ist Zeichenschraffur

Aufklappen Erläuterung
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=werti-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 (skalierungX/skalierungY) multipliziert. Siehe Abbildung. Der Faktor 1 für die Vergrößerung bewirkt eine absolute Maßangabe in Metern (auf dem Papier).Mit skalierung=1000/GLOB_SCALE erreicht man eine maßstäbliche Darstellung. Die Maßangaben sind dann in Meter im Plan. Eine homogene (skalierungX=skalierungY) 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 winkel.

Die im Makro erzeugten 2D-Elemente werden dann. ausgehend vom Nullpunkt, mit einem Rapport von frequenzX in X-Richtung und von frequenzY 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: verschiebungX und verschiebungY. Siehe Abbildung.

Das ab ArchiCAD 9 optionale Syntaxfragment FILLTYPES_MASK wird ebenso wie die Sektion ADDITIONAL_DATA separat erläutert.

Aufklappen Beispiel
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 Besonderheiten
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 ab ArchiCAD 10 verwendet werden.

Aufklappen Tipps und Tricks
Der Befehl entspricht der Symbolschraffur, die graphisch unter Optionen>Schraffurtypen vorgenommen werden kann. Die dortigen Parameter entsprechen denen des Befehls wie folgt:

frequenzX = X1
verschiebungY = Y1
verschiebungX = X2
frequenzY = Y2

Download Beispielobjekt für ArchiCAD 8.1 und höher.

Aufklappen Kontext
2D-Skript, 3D-Skript, MASTER_GDL

Aufklappen ArchiCAD
ab 8.0