AutoCAD utiliza el algoritmo de ejes arbitrarios internamente para llevar a cabo la generación arbitraria, pero coherente, de sistemas de coordenadas de objeto para todas las entidades que utilizan este tipo de coordenadas.
Ante un vector de longitud de unidad que se utiliza como eje Z de un sistema de coordenadas, el algoritmo de ejes arbitrarios generará el eje X correspondiente del sistema de coordenadas. El eje Y se define según la regla de la mano derecha.
El método se utiliza para examinar el eje Z dado (también denominado vector normal). Si está próximo al eje Z universal positivo o negativo, interseque el eje Y universal con el eje Z dado para llegar hasta el eje X arbitrario. En caso contrario, interseque el eje Z universal con el eje Z dado para llegar hasta el eje X arbitrario. El límite en el que se toma la decisión se eligió de forma que fuera sencillo de calcular y totalmente transferible entre máquinas. Esto se consigue utilizando una especie de casquete polar “cuadrado”, con unos límites de 1/64, que pueden especificarse de forma precisa en fracciones decimales de seis dígitos y en fracciones binarias de seis bits.
El algoritmo realiza lo siguiente (se da por supuesto que todos los vectores están en espacio tridimensional y precisados en el sistema de coordenadas universales):
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).
Lo que se pretende es que los ejes arbitrarios X e Y vayan con la normal N. Estos ejes se denominarán Ax y Ay. N también podría llamarse Az (el eje Z arbitrario), según se indica a continuación:
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.
El método para obtener el vector Ay es como se indica a continuación:
Ay = N X Ax. Scale Ay to unit length.