# kernelv_ch_get_cs_rot_matrix()

## Prototyp

KERNELV_RETURN | kernelv_ch_get_cs_rot_matrix(unsigned long int chanIndex, unsigned short csIndex, double *matrix, unsigned long int bufferSize, unsigned long int *retBytes);

## Beschreibung

Liefert die Rotationsmatrix des durch den Parameter csIndex angegebenen Koordinatensystems zurück.

Es wird eine 3x3 Drehmatrix zurückgegeben, mit der das Koordinatensystem aus dem unterlagerten Koordinatensystem erzeugt werden kann.

Es wird die Rotationsmatrix zurückgegeben, die z.B. durch die Parameter ϕ1, ϕ2 ϕ3 des folgenden NC-Befehls erzeugt wird:

#CS DEF [CS1] [ <v1>,<v2>,<v3>,<ϕ1>,<ϕ2>,<ϕ3> ]

Falls an dem angegebenen Index im Koordinatensystems-Stack kein Koordinatensystem definiert ist, wird die Einheitsmatrix zurückgegeben und der Rückgabewert der Funktion ist ERR_CNC_NO_DATA.

## Parameter

Name | Typ | Bedeutung
chanIndex | unsigned long | Kanalindex des Kanals.
csIndex | unsigned short | Index des Koordinatensystems im Koordinatensystem-Stack.
matrix | double* | Zeiger auf den Speicherplatz für die Rotationsmatrix.
bufferSize | unsigned long | Länge des Speicherbereiches für die Rotationsmatrix muss mindestens 3 x 3 x sizeof(double) sein.
returnLength | unsigned long* | Zeiger auf den Wert, in den die tatsächlich zurückgegebene Anzahl Bytes geschrieben werden soll. Falls der übergebene Speicher zu klein für die Rückgabe des Wertes ist, wird der Rückgabewert ERR_CNC_RET_MEMORY zurückgegeben und es wird über diesen Parameter die benötigte Speichergröße zurückgegeben.

## Rückgabewerte

Symbol | Wert | Bedeutung
RET_FINISHED | 0 | Die Funktion wurde fehlerfrei durchgeführt.
ERR_INVALID_CHAN | -1 | Der übergebene Kanalindex ist größer als die Anzahl der konfigurierten Kanäle – 1
ERR_CNC_NOT_INIT | -3 | Der Simulations-CNC-Kern ist noch nicht initialisiert.
ERR_CNC_RET_MEMORY | -4 | Der oder die Rückgabewerte passen nicht in den bereitgestellten Speicher. In diesem Fall wird über returnLength die zur Rückgabe benötigte Mindestgröße zurückgegeben.
ERR_READ_ERR | -26 | Beim Lesen von Daten aus der kernelv-DLL ist ein Fehler aufgetreten.
ERR_CNC_NO_DATA | -28 | Die angeforderten Daten sind nicht verfügbar. An der durch den Aufrufparameter csIndex angegebenen Stelle im Koordinatensystem-Stack steht kein definiertes Koordinatensystem. Es wird die Einheitsmatrix zurückgegeben.
ERR_INVALID_PARAMETER | -30 | Es wurde ein ungültiger Parameter übergeben: Der in Parameter csIndex übergebene Koordinatensystemindex ist größer als der maximal mögliche Index im Koordinatensystem-Stack.