Rotation sequence
When transformations are complete, the sequence of rotations executed about the 3 rotary axes can be defined to meet the requirements (see P-CHAN-00112). If this is required, the TcCOM transformation must also take this into consideration. Therefore, the current setting is transferred to the transformation in the p->actual_orientation_mode parameter. The rotation sequences supported in the transformation can be sent to the CNC in the data item p->supported_orientation_modes When the transformation is selected, the CNC checks the setting in P-CHAN-00112 for plausibility and generates the error message ID 292045 if the transformation does not support the selected rotation sequence.
CNC --> TcCOM transformation:
| p->actual_orientation_mode | Meaning | 
| EcCncTrafoOri_None | No rotation | 
| EcCncTrafoOri_YPR | Yaw-Pitch-Roll rotation sequence: 1st rotation about Z, 2nd negative rotation about Y, 3rd rotation about X | 
| EcCncTrafoOri_CBC1 | Euler rotation sequence: 1st rotation about Z, 2nd rotation about Y, 3rd rotation about Z‘ | 
| EcCncTrafoOri_CBA | 1st rotation about Z, 2nd rotation about Y, 3rd rotation about X | 
| EcCncTrafoOri_CAB | 1st rotation about Z, 2nd rotation about X, 3rd rotation about Y | 
| EcCncTrafoOri_AB | 1st rotation about X, 2nd rotation about Y | 
| EcCncTrafoOri_BA | 1st rotation about Y, 2nd rotation about X | 
| EcCncTrafoOri_CA | 1st rotation about Z, 2nd rotation about X | 
| EcCncTrafoOri_CB | 1st rotation about Z, 2nd rotation about Y | 
TcCOM transformation --> CNC:
| p->supported_orientation_modes | Meaning | 
| .f_YPR | = TRUE, transformation supports rotation sequence YPR | 
| .f_CBC1 | = TRUE, transformation supports rotation sequence CBC‘ | 
| .f_CBA | = TRUE, transformation supports rotation sequence CBA | 
| .f_CAB | = TRUE, transformation supports rotation sequence CAB | 
| .f_AB | = TRUE, transformation supports rotation sequence AB | 
| .f_BA | = TRUE, transformation supports rotation sequence BA | 
| .f_CA | = TRUE, transformation supports rotation sequence CA | 
| .f_CB | = TRUE, transformation supports rotation sequence CB | 
By default, the CNC uses the setting EcCncTrafoOri_YPR (Yaw->Pitch->Roll). Accordingly, the data item p->supported_orientation_mode.f_YPR is set to the value TRUE by default.
Example

HRESULT <UserTrafo>::TrafoSupported(PTcCncTrafoParameter p, bool fwd)
{
...
/* Transformation supports YPR and Euler rotation sequence. */
p->supported_orientation_modes.f_YPR = TRUE;
p->supported_orientation_modes.f_CBC1 = TRUE;
...
return S_OK;
}
HRESULT <UserTrafo>::Backward(PTcCncTrafoParameter p)
{
…
if (EcCncTrafoOri_CBC1 == p->actual_orientation_mode)
{
/* Rotation sequence acc. to Euler active */
}
else
{
...
}
return S_OK;
}