coord-transf.2d elements3d elementsnon geo scriptsfunctionscontrol statem.attributesvariousaddons
planarprimitivebasic shapesprismscomplex shapesfrom polylines3d cuttingsolid commandsvarious
BASE BODY COOR EDGE PGON PIPG TEVE VECT VERT
Name
VECT
Syntax
VECTx, y, z
Aufklappen Range
x, Typ real
y, Typ real
z, Typ real
Aufklappen Description
Definiert einen Normalenvektor (0/0/0)-(x/y/z). In den Befehlen PGON und PIPG kann damit die Ausrichtung einer Fläche zum Körper (innen/außen) festgelegt werden. Ist in der Flächendefinition der Normalenvektor nicht definiert (Index mit alignment=0), wird dieser automatisch ermittelt, was aber zu ungewollten und problematischen Orientierungen führen kann.

Bei dem Tetraederbeispiel wird z.B. die Bodenplatte (siehe Beispiel) automatisch mit Oberfläche nach oben definiert. Das muss durch einen VECT 0,0,-1 korrigiert werden, damit ein geschlossener Körper erzeugt werden kann.

Die absolute Länge des Vektors spielt keine Rolle, die Richtung ist entscheidend.
Aufklappen Example
VERT 0,0,0 ! Ecke 1
VERT 1,0,0 ! Ecke 2
VERT 0.5,1*SIN(60),0 ! Ecke 3

VECT 0,0,-1 ! Normalenvektor 1

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

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

BODY 4 ! Fläche darstellen
Aufklappen Context
3D-Skript
Aufklappen Tips and Tricks
Eine Ebene wird eindeutig durch 2 Vektoren in einer Ebene oder 3 Punkte aufgespannt. Die Vektoren dürfen nicht komplanar oder windschief zueinander bzw. die Punkte müssen eindeutig sein. Einfacher ist die Normalenform, die eine Ebene durch einen Richtungsvektor ("Normale") und einen beliebigen Punkt auf der Ebene definiert. Für CAD ist es einfacher mit der Normalenform zu arbeiten, da die Ebene somit auch eine eindeutige Definition von oben/unten bzw. innen/außen erhält.

Nun hat man aber in den meisten Fällen eher Punkte auf der Oberfläche einer Ebene als die passende Senkrechte dazu. Da hilft uns aber die Mathematik (siehe Links), denn das Kreuzprodukt zweier Vektoren ergibt einen zu diesen beiden Vektoren senkrechten Vektor, die Normale.

! Kreuzprodukt zweier Vektoren
a1=px-qx
a2=py-qy
a3=pz-qz

b1=rx-qx
b2=ry-qy
b3=rz-qz

nx1 = b2*a3 - b3*a2
ny1 = b3*a1 - b1*a3
nz1 = b1*a2 - b2*a1

nx2 = a2*b3 - a3*b2
ny2 = a3*b1 - a1*b3
nz2 = a1*b2 - a2*b1


Berechnet aus den 3 eine Ebene Aufspannenden Punkten P(px,py,pz), Q(qx/qy/qz) und R(rx/ry/rz) (oder eben einem Dreieck bzw. Vektorenpaar) die beiden Normalenvektoren (0/0/0 - nx1/ny1/ny1) und (0/0/0 - nx2/ny2/ny2).
Benötigt wird nur einer der Normalenvektoren, doch je nach Lagebeziehung der 3 Punkte untereinander muss unterschieden werden welcher Normalenvektor der richtige ist.

Natürlich ist es am einfachsten in den Befehlen PGON und PIPG den Normalenvektor durch ArchiCAD® bestimmen zu lassen (Index=0).
Kreuzprodukt:
in der Wikipedia
bei Filstal.Online e.V.
Aufklappen References
GDL-Handbuch 4.5 (DE) p. 76
GDL-Handbuch 5.0 (DE) p. 88
GDL-Handbuch 6.0 (DE) p. 105
GDL-Handbuch 6.5 (DE) p. 100
GDL-Handbuch 7.0 (DE) p. 100
GDL-Handbuch 8.0 (DE) p. 70
GDL-Handbuch 8.1 (DE) p. 71
GDL-Handbuch 9.0 (DE) p. 98
GDL-Handbuch 10.0 (DE) p. 94
GDL-Handbuch 11.0 (DE) p. 98
GDL Reference Guide 9.0 (INT) p. 95
GDL Reference Guide 10.0 (INT) p. 94
GDL Reference Guide 11.0 (INT) p. 94
GDL Cookbook 3.1 (EN/DE) p. 2.56
 




Farben der Indizes:
Rot=Ecken; Blau=Kanten (Vektoren); Gelb=Flächen; Violett=Normalenvektoren


Grundriss komplett


Isometrie komplett


Grundriss für Fläche/Normale #2


Isometrie für Fläche/Normale #2