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;
}