Drehreihenfolge

Bei vollständigen Transformationen kann die Reihenfolge der ausgeführten Rotationen um die 3 Drehachsen beliebig festgelegt werden (s. P-CHAN-00112). Falls dies gewünscht ist, muss dies auch die TcCOM-Transformation berücksichtigen. Die aktuelle Einstellung wird der Transformation daher im Parameter p->actual_orientation_mode übergeben. Die in der Transformation unterstützten Drehsequenzen können der CNC im Datum p->supported_orientation_modes bei Aufruf der Funktion TrafoSupported() mitgeteilt werden. Bei angewählter Transformation prüft die CNC die Einstellung in P-CHAN-00112 auf Plausibilität und generiert die Fehlermeldung ID 292045 falls die gewählte Rotationsreihenfolge von der Transformation nicht unterstützt wird.

CNC --> TcCOM-Transformation:

p->actual_orientation_mode

Bedeutung

EcCncTrafoOri_None

Keine Rotation

EcCncTrafoOri_YPR

Yaw-Pitch-Roll Rotationsreihenfolge: 1. Drehung um Z, 2. Drehung negativ um Y, 3. Drehung um X

EcCncTrafoOri_CBC1

Euler Rotationsreihenfolge: 1. Drehung um Z, 2. Drehung um Y, 3. Drehung um Z‘

EcCncTrafoOri_CBA

1. Drehung im Z, 2. Drehung um Y, 3. Drehung um X

EcCncTrafoOri_CAB

1. Drehung um Z, 2. Drehung um X, 3. Drehung um Y

EcCncTrafoOri_AB

1. Drehung um X, 2. Drehung um Y

EcCncTrafoOri_BA

1. Drehung um Y, 2. Drehung um X

EcCncTrafoOri_CA

1. Drehung um Z, 2. Drehung um X

EcCncTrafoOri_CB

1. Drehung um Z, 2. Drehung um Y

TcCOM-Transformation --> CNC:

p->supported_orientation_modes

Bedeutung

.f_YPR

= TRUE, Trafo unterstützt Drehreihenfolge YPR

.f_CBC1

= TRUE, Trafo unterstützt Drehreihenfolge CBC‘

.f_CBA

= TRUE, Trafo unterstützt Drehreihenfolge CBA

.f_CAB

= TRUE, Trafo unterstützt Drehreihenfolge CAB

.f_AB

= TRUE, Trafo unterstützt Drehreihenfolge AB

.f_BA

= TRUE, Trafo unterstützt Drehreihenfolge BA

.f_CA

= TRUE, Trafo unterstützt Drehreihenfolge CA

.f_CB

= TRUE, Trafo unterstützt Drehreihenfolge CB

Standardmäßig verwendet die CNC die Einstellung EcCncTrafoOri_YPR (Yaw->Pitch->Roll), entsprechend ist das Datum p->supported_orientation_mode.f_YPR standardmäßig auf den Wert TRUE gesetzt.

Beispiel

HRESULT <UserTrafo>::TrafoSupported(PTcCncTrafoParameter p, bool fwd)
{
  ...
  /* Transformation unterstuetzt YPR und Euler Drehreihenfolge. */
  p->supported_orientation_modes.f_YPR  = TRUE;
  p->supported_orientaiton_modes.f_CBC1 = TRUE;
  ...
  return S_OK;
}
HRESULT <UserTrafo>::Backward(PTcCncTrafoParameter p)
{
  …
  if (EcCncTrafoOri_CBC1 == p->actual_orientation_mode)
  {
/* Drehreihenfolge nach Euler aktiv */  
  }
  else
  {
  ...
  }
  return S_OK;
}