hexagon logo

Iterative alignment transformation matrix

Is there an easy way to report out the transformation matrix that is applied by an iterative alignment? I want to recall an alignment from a previous fixture alignment and then run an iterative alignment on the part on that fixture and report out the exact rotations and translations used to transform from one alignment to the next.

Thanks for any help.
Parents
  • There's another way to know rotations, with Euler angles method. Three rotations (nutation, precession, own rotation) are calculated step by step.
    The translation between the 2 alignments is a vector, like the 1st solution.
    1st step : Calculation of nutation
    ASSIGN\V1=CROSS(ALIGN_1.ZAXIS,ALIGN2.ZAXIS)
    Construc a generic plane PL1, in ALIGN_1 at 0,0,0 and I=V1.I,J=V1.J,K=V1.K.
    Create an alignment with PL1 for level.
    In this alignment, create a line LN1 (1,0,0)
    ASSIGN\OWN_ROTATION=ANGLEBETWEEN(LN1.IJK,ALIGN_2.XAXIS)
    The sign of angle is calculated with an id statement (for example if ALIGN_2.XAXIS.J>=0, OWN_ROTATION=-ANGLEBETWEEN(LN1.IJK,ALIGN_.XAXIS)
    ASSIGN\NUTATION=ANGLEBETWEEN(ALIGN_1.ZAXIS,ALIGN_2.ZAXIS)
    ASSIGN\PRECESSION=ANGLEBETWEEN(LN1.IJK,ALIGN_1.XAXIS)

    If you want to re-construct the second alignment from the first, you have to construct some generic feature, and turn angles around good axis... Good luck !
Reply
  • There's another way to know rotations, with Euler angles method. Three rotations (nutation, precession, own rotation) are calculated step by step.
    The translation between the 2 alignments is a vector, like the 1st solution.
    1st step : Calculation of nutation
    ASSIGN\V1=CROSS(ALIGN_1.ZAXIS,ALIGN2.ZAXIS)
    Construc a generic plane PL1, in ALIGN_1 at 0,0,0 and I=V1.I,J=V1.J,K=V1.K.
    Create an alignment with PL1 for level.
    In this alignment, create a line LN1 (1,0,0)
    ASSIGN\OWN_ROTATION=ANGLEBETWEEN(LN1.IJK,ALIGN_2.XAXIS)
    The sign of angle is calculated with an id statement (for example if ALIGN_2.XAXIS.J>=0, OWN_ROTATION=-ANGLEBETWEEN(LN1.IJK,ALIGN_.XAXIS)
    ASSIGN\NUTATION=ANGLEBETWEEN(ALIGN_1.ZAXIS,ALIGN_2.ZAXIS)
    ASSIGN\PRECESSION=ANGLEBETWEEN(LN1.IJK,ALIGN_1.XAXIS)

    If you want to re-construct the second alignment from the first, you have to construct some generic feature, and turn angles around good axis... Good luck !
Children
No Data