Name
PGON

Syntax
PGON anzahl, ausrichtung, status, kante1, kante2, ... kanten

Aufklappen Wertebereiche
anzahl=0 oder anzahl>2, Typ Integer
ausrichtung≥0, Typ integer
-1 ≤ status ≤ 127, Typ integer
kantei, Typ integer

Aufklappen Statuswerte
status=-1 oder
status=s1+s2+s3+s4+s5+s6+s7, mit

s1=0 /=1: Polygon ist sichtbar/unsichtbar.
s2=0 /=2: Polygon planer/gekrümmter Oberfläche.
s5=16: Konkaves Polygon.
s6=32: Polygon mit Durchdringungen.
s7=64: Durchdringungen sind konvex (nur mit s6=32).

Ab Archicad 11:
s3=4: Erstes Polygon mit einer gekrümmten Oberfläche (nur mit s2=2).
s4=8: Letztes Polygon mit einer gekrümmten Oberfläche (nur mit s2=2)

Aufklappen Erläuterung
Erzeugt eine Polygonfläche aus anzahl zuvor mit EDGE definierten Kanten. Die Kanten müssen in einer Ebene liegen und der explizit zugewiesene Normalenvektor (siehe VECT) ausrichtung senkrecht zu dieser Fläche sein. Die Referenzierung auf die Kanten- und den Normalenvektor (kantei) erfolgt über den Index ihrer Position im Skript (siehe BASE).

Da die Kanten als Vektoren definiert werden, ist deren Richtung zu beachten. Kantenvektoren mit negativem Vorzeichen werden in zu ihrer Definition entgegengesetzter Richtung interpretiert. Jeder Vektor muss also am Ausgangspunkt des nächsten Vektors im Polygonzug enden.

Der Wert 0 (null) kennzeichnet den Anfang oder das Ende einer Öffnungsdefinition; diese "Pseudokante" ist in anzahl miteinzurechnen.

Der Normalenvektor, der die Richtung der Körperaußenseite angibt, kann automatisch bestimmt werden, indem der Index (ausrichtung) mit 0 vorgegeben wird.

Mit status gibt Polygonart vor, mit status=-1 kann sie auch automatisch ermittelt werden.

Aufklappen Beispiel
VERT 0,0,0 ! Ecke 1
VERT 1,0,0 ! Ecke 2
VERT 0.5,1*SIN(60),0 ! Ecke 3

EDGE 1,2, -1,-1, 0 ! Kante 1
EDGE 2,3, -1,-1, 0 ! Kante 2
EDGE 3,1, -1,-1, 0 ! Kante 3

PGON 3, 0, 0, 1,2, 3 ! Fläche

BODY 1 !Dreieck darstellen

Aufklappen Besonderheiten
anzahl=0 stellt einen Sonderfall dar. Nur welchen?

Aufklappen Attribute
MATERIAL

Aufklappen Tipps und Tricks
Es sollte nach Möglichkeit ein Normalenvektor zuvor festgelegt werden, da es sonst zu Unstimmigkeiten im Körper kommen kann. Im Beispiel des Tetraeders (siehe BODY-Befehl) würde automatisch der Normalenvektor der Bodenplatte nach innen orientiert, was zu fehlerhafter Darstellung führt.
Ein Körper gilt als geschlossen ("watertight"), wenn jede definierende Kante zu genau 2 Polygonen gehört.
[Edit/unklar:]
Als SOLID gilt ein Körper, wenn zusätzlich jede Kante jeweils mit unterschiedlichem Präfix (Vorzeichen?) definiert wurde. Also muss z.B. Kante #1 einmal (im 1. Polygon?) als "1" und einmal (im 2. Polygon?) als "-1" gelistet sein. Ansonsten wird im Schnitt keine Schraffur des Körpers angezeigt.

Aufklappen Kontext
3D-Skript