Arbiträrer Achsenalgorithmus (DXF)

Der arbiträre Achsenalgorithmus wird intern von AutoCAD verwendet. Mit diesem Algorithmus wird die Erzeugung von Objektkoordinatensystemen auf beliebige, aber konsistente Weise für alle Elemente mit Objektkoordinaten gewährleistet.

Beim arbiträren Achsenalgorithmus geben Sie einen Vektor mit der Länge einer Einheit als Z-Achse des Koordinatensystems an. Dieser Vektor dient als Grundlage für die Berechnung der X-Achse dieses Koordinatensystems. Die Y-Achse wird mit Hilfe der Rechte-Hand-Regel bestimmt.

Bei diesem Verfahren wird die gegebene Z-Achse geprüft (auch als Normalvektor bezeichnet). Wenn die Nähe zur positiven oder negativen Z-Achse gegeben ist, wird die Y-Achse mit der gegebenen Z-Achse gekreuzt und so die arbiträre X-Achse bestimmt. Andernfalls wird die arbiträre X-Achse durch Kreuzen der Z-Achse des Weltkoordinatensystems mit der gegebenen Z-Achse bestimmt. Der Grenzwert für diese Entscheidung wurde so gewählt, dass zum einen nur ein geringer Berechnungsaufwand anfällt und das Verfahren zum anderen problemlos auf einem anderen Gerät ausgeführt werden kann. Hierzu wird eine “quadratische Kappe” an den Polen verwendet, deren Grenzen 1/64 betragen. Dieser Wert kann mit sechs Dezimalstellen und sechs Binärbruch-Bits exakt dargestellt werden.

Der Algorithmus führt die folgenden Funktionen aus (Voraussetzung: Alle Vektoren befinden sich im dreidimensionalen Raum und wurden im Weltkoordinatensystem angegeben):

Let the given normal vector be called N.
Let the world Y axis be called Wy, which is always (0,1,0).
Let the world Z axis be called Wz, which is always (0,0,1).

Betrachten wir hier die arbiträren X- und Y-Achsen mit der Normalen N. Sie werden als Ax und Ay bezeichnet. N könnte auch als Az (arbiträre Z-Achse) bezeichnet werden:

If (abs (Nx) < 1/64) and (abs (Ny) < 1/64) then
     Ax = Wy X N (where “X” is the cross-product operator).
Otherwise,
     Ax = Wz X N.
Scale Ax to unit length.

Methode zum Ermitteln des Ay-Vektors:

Ay = N X Ax. Scale Ay to unit length.