Name
DEFINE_FILLA

Syntax
DEFINE FILLA name [FILLTYPES_MASK schraffurart,]
bitmapmuster1, ..., bitmapmuster8,
skalierungX, skalierungY, winkel, n,
frequenzY1, frequenzX1, richtung1, verschiebungX1, verschiebungY1, m1,
länge1,1, ..., länge1,m,
...
frequenzYn, frequenzXn, richtungn, verschiebungXn, verschiebungYn, mn,
längen,1, ..., längen,m
[[,] 
ADDITIONAL_DATA [name_extern1= wert_extern1, ... name_externn= wert_externn]

Aufklappen Wertebereiche
name, Typ Text
schraffurart, Typ integer (*)
0 ≤ bitmapmusteri < 256, Typ integer
skalierungX > 0, Typ real
skalierungY > 0, Typ real
winkel, Typ real
0 < n, Typ integer
frequenzYi > 0, Typ real
frequenzXi, Typ real
richtungi, Typ real
verschiebungXi, Typ real
verschiebungYi, Typ real
0 ≤ mi, Typ integer
längei,j ≥ 0, Typ real

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 einen Schraffurtyp mit dem Namen name. Der Befehl ist eine Erweiterung des DEFINE FILL-Befehls. Daher werden hier lediglich die zusätzlichen Parameter beschrieben.

Die Skalierung ist jetzt nicht nur homogen in X- und Y-Richtung möglich, sondern differenziert für beide Richtungen mit skalierungX und skalierungY. Siehe Abbildung.

Der Rapport kann nun für jede Einzellinie nicht nur in Y-Richtung (senkrecht zur Linie) (frequenzYi) sondern auch in Linienrichtung (lokale X-Richtung) mit frequenzXi eingestellt werden.

Die übrigen Parameter bleiben unverändert.

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

Aufklappen Beispiel
a=3
b=3

DEFINE FILLA "Beispiel" 1+128, 32+64, 8+16, 2+4, 1+128, 32+64, 8+16, 2+4,
 ! Bitmapmuster
 ! 10000001
 ! 01100000
 ! 00011000
 ! 00000110
 ! 10000001
 ! 01100000
 ! 00011000
 ! 00000110

 ! skalierungX, skalierungY, winkel, n
 1.00, 1.00, 12.5, 3,

 ! 1. Linie
 ! frequenzY1, frequenzX1, richtung1,
 ! verschiebungX1, verschiebungY1, m1
 0.50, 0.00, 90.0, 0.10, 0.10, 4,
 ! Längen
 0.10, 0.10, 0.00, 0.10,

 ! 2. Linie
 ! frequenzY2, frequenzX2, richtung2,
 ! verschiebungX2, verschiebungY2, m2
 0.50,0.10,92.0,0.25,0.15,2,
 ! Längen
 0.10, 0.10,

 ! 3. Linie
 ! frequenzY3, frequenzX3, richtung3,
 ! verschiebungX3, verschiebungY3, m3
 0.50,0.20,94.0,0.40,0.20,6,
 ! Längen
 0.00, 0.10, 0.00, 0.10, 0.10, 0.10

FILL "Beispiel"

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

Aufklappen Besonderheiten
Siehe DEFINE FILL-Befehl.

Bei homogen in alle Richtungen skalierten Systemen ist der Skalierungsfaktor zum Erhalt der resultierenden, tatsächlichen Längen in alle Richtungen gleich. Wie z.B. beim DEFINE FILL-Befehl.
Hier ist aber eine asymetrische Skalierung (skalierungX/skalierungY) zulässig. wodurch für jeden Neigungswinkel einer Strecke eine individuelle Skalierung erfolgt. Diese lässt sich wie folgt ermitteln:

s=SQR((skalierungX*COS(alpha))^2+(skalierungY*SIN(alpha))^2)

Damit ergibt sich die wahre Länge aus:

Labsolut = L * s

Für die Strecken in der Schraffurdefiniton, die sich in Linienrichtung (X) ausdehnen ergibt sich damit ein Faktor von:
sXi=SQR((skalierungX*COS(richtungi))^2+(skalierungY*SIN(richtungi))^2)
und für die dazu senkrecht verlaufenden (z.B. frequenzYi) errechnet sich der Faktor aus:
sYi=SQR((skalierungX*COS(90+richtungi))^2+(skalierungY*SIN(90+richtungi))^2)

Im Normalfall muss man diese Strecken nicht berechnen, da mit Schraffuren nicht derart exakt gezeichnet wird. Für zum System orthogonal verlaufende Strecken ist der Faktor natürlich einfach nach seiner Ausdehnungsrichtung (X oder Y) zu bestimmen.

Das optionale Komma vor FILLTYPES_MASK und ADDITIONAL_DATA ist erst ab ArchiCAD 10 zulässig und erlaubt so eine bessere Formatierung des Skriptes durch die Möglichkeit eines Zeilenumbruchs.

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

Aufklappen ArchiCAD
ab 6.0