hexagon logo

Long hand Iterative Alignment (without using Iterative alignment command).

Hi all,

After a discussion in another thread I thought I'd post an example of an iterative alignment done long hand (without using Iterative alignment command)

There are two reasons for this.

1) When using iterative alignment command it's necessary for the vectors of your features for each group (Level, Rotate etc) to be roughly the same. For example you cannot have three points for a level where two are approx 0,0,1 and the third is 0,0,-1.

2) I think this is a great way of understanding what's going on when you do an iterative alignment - before I saw this method it was a bit of a black box to me, this made it all clear.

It's ages since I've done it so, it might not be the most elegant method, but it gives you the general idea.

This was done on the hexblock if anyone wants to copy it and have a play.




PART1


[COLOR=#FF0000]DEFINE MANUAL POINTS[/COLOR]

A_1        =FEAT/CONTACT/VECTOR POINT/DEFAULT,CARTESIAN
            THEO/<68.91724,90.03451,[COLOR=#FF0000]13.995[/COLOR]>,<0,0,1>
            ACTL/<68.91724,90.03451,13.995>,<0,0,1>
            TARG/<68.91724,90.03451,13.995>,<0,0,1>
            SHOW FEATURE PARAMETERS=NO
            SHOW CONTACT PARAMETERS=YES
              AVOIDANCE MOVE=BEFORE,DISTANCE=15
            SHOW HITS=NO
A_2        =FEAT/CONTACT/VECTOR POINT/DEFAULT,CARTESIAN
            THEO/<224.66066,26.63014,[COLOR=#FF0000]-22[/COLOR]>,<0,0,1>
            ACTL/<224.66066,26.63014,-22>,<0,0,1>
            TARG/<224.66066,26.63014,-22>,<0,0,1>
            SHOW FEATURE PARAMETERS=NO
            SHOW CONTACT PARAMETERS=YES
              AVOIDANCE MOVE=BEFORE,DISTANCE=15
            SHOW HITS=NO
A_3        =FEAT/CONTACT/VECTOR POINT/DEFAULT,CARTESIAN
            THEO/<105.84726,8.49368,0>,<0,0,1>
            ACTL/<105.84726,8.49368,0>,<0,0,1>
            TARG/<105.84726,8.49368,0>,<0,0,1>
            SHOW FEATURE PARAMETERS=NO
            SHOW CONTACT PARAMETERS=YES
              AVOIDANCE MOVE=BEFORE,DISTANCE=15
            SHOW HITS=NO
B_1        =FEAT/CONTACT/VECTOR POINT/DEFAULT,CARTESIAN
            THEO/<76.31905,[COLOR=#FF0000]6[/COLOR],-6.60326>,<0,-1,0>
            ACTL/<76.31905,6,-6.60326>,<0,-1,0>
            TARG/<76.31905,6,-6.60326>,<0,-1,0>
            SHOW FEATURE PARAMETERS=NO
            SHOW CONTACT PARAMETERS=YES
              AVOIDANCE MOVE=BEFORE,DISTANCE=15
            SHOW HITS=NO
B_2        =FEAT/CONTACT/VECTOR POINT/DEFAULT,CARTESIAN
            THEO/<215.89615,[COLOR=#FF0000]35[/COLOR],-7.02906>,<0,-1,0>
            ACTL/<215.89615,35,-7.02906>,<0,-1,0>
            TARG/<215.89615,35,-7.02906>,<0,-1,0>
            SHOW FEATURE PARAMETERS=NO
            SHOW CONTACT PARAMETERS=YES
              AVOIDANCE MOVE=BEFORE,DISTANCE=15
            SHOW HITS=NO
C_1        =FEAT/CONTACT/VECTOR POINT/DEFAULT,CARTESIAN
            THEO/<[COLOR=#FF0000]209[/COLOR],26.76939,-15.36707>,<1,0,0>
            ACTL/<209,26.76939,-15.36707>,<1,0,0>
            TARG/<209,26.76939,-15.36707>,<1,0,0>
            SHOW FEATURE PARAMETERS=NO
            SHOW CONTACT PARAMETERS=YES
              AVOIDANCE MOVE=BEFORE,DISTANCE=15
            SHOW HITS=NO

[COLOR=#FF0000]CONSTRUCT OFFSET FEATURES, NOTE OFFSETS COME FROM FEATURE THEOS[/COLOR]

PLN1       =FEAT/PLANE,CARTESIAN,TRIANGLE,YES
            THEO/<133.14172,41.71944,0>,<0,0,1>
            ACTL/<133.14172,41.71944,0>,<0,0,1>
            CONSTR/PLANE,OFFSET
            ID = A_1,A_2,A_3,,
            OFFSET = [COLOR=#FF0000]-13.995,22,0[/COLOR]
LIN1       =FEAT/LINE,CARTESIAN,UNBOUNDED,YES
            THEO/<76.31905,0,-6.81616>,<1,0,0>
            ACTL/<76.31905,0,-6.81616>,<1,0,0>
            CONSTR/LINE,OFFSET
            SURFACE NORMAL = <0,0,1>,MULTI POINT
            ID = B_1,B_2,,
            OFFSET =[COLOR=#FF0000] -6,-35

CREATE ALIGNMENT (3-2-1)[/COLOR]

A1         =ALIGNMENT/START,RECALL:STARTUP,LIST=YES
            ALIGNMENT/LEVEL,ZPLUS,PLN1
            ALIGNMENT/TRANS,ZAXIS,PLN1
            ALIGNMENT/ROTATE,XPLUS,TO,LIN1,ABOUT,ZPLUS
            ALIGNMENT/TRANS,YAXIS,LIN1
            ALIGNMENT/TRANS,XAXIS,C_1
            ALIGNMENT/TRANS_OFFSET,XAXIS,[COLOR=#FF0000]-209[/COLOR]
            ALIGNMENT/END

[COLOR=#FF0000]SAVE IT[/COLOR]

            SAVE/ALIGNMENT,long_hand_iter.aln,MACHINETOPARTS

[COLOR=#FF0000]EVALUATE FEATURES IN AXIS THEY'RE NOT CONTROLLING (POINT TARGET RAIDUS)[/COLOR]

DIM LOC1= LOCATION OF POINT A_1  UNITS=MM ,$
GRAPH=OFF  TEXT=OFF  MULT=10.00  OUTPUT=BOTH  HALF ANGLE=NO
AX    NOMINAL       +TOL       -TOL       MEAS        DEV     OUTTOL
X     68.91724    0.10000   -0.10000   68.91724    0.00000    0.00000 ----#----
Y     90.03451    0.10000   -0.10000   90.03451    0.00000    0.00000 ----#----
END OF DIMENSION LOC1
DIM LOC2= LOCATION OF POINT A_2  UNITS=MM ,$
GRAPH=OFF  TEXT=OFF  MULT=10.00  OUTPUT=BOTH  HALF ANGLE=NO
AX    NOMINAL       +TOL       -TOL       MEAS        DEV     OUTTOL
X    224.66066    0.10000   -0.10000  224.66066    0.00000    0.00000 ----#----
Y     26.63014    0.10000   -0.10000   26.63014    0.00000    0.00000 ----#----
END OF DIMENSION LOC2
DIM LOC3= LOCATION OF POINT A_3  UNITS=MM ,$
GRAPH=OFF  TEXT=OFF  MULT=10.00  OUTPUT=BOTH  HALF ANGLE=NO
AX    NOMINAL       +TOL       -TOL       MEAS        DEV     OUTTOL
X    105.84726    0.10000   -0.10000  105.84726    0.00000    0.00000 ----#----
Y      8.49368    0.10000   -0.10000    8.49368    0.00000    0.00000 ----#----
END OF DIMENSION LOC3
DIM LOC4= LOCATION OF POINT B_1  UNITS=MM ,$
GRAPH=OFF  TEXT=OFF  MULT=10.00  OUTPUT=BOTH  HALF ANGLE=NO
AX    NOMINAL       +TOL       -TOL       MEAS        DEV     OUTTOL
X     76.31905    0.10000   -0.10000   76.31905    0.00000    0.00000 ----#----
Z     -6.60326    0.25000   -0.25000   -6.60326    0.00000    0.00000 ----#----
END OF DIMENSION LOC4
DIM LOC5= LOCATION OF POINT B_2  UNITS=MM ,$
GRAPH=OFF  TEXT=OFF  MULT=10.00  OUTPUT=BOTH  HALF ANGLE=NO
AX    NOMINAL       +TOL       -TOL       MEAS        DEV     OUTTOL
X    215.89615    0.10000   -0.10000  215.89615    0.00000    0.00000 ----#----
Z     -7.02906    0.25000   -0.25000   -7.02906    0.00000    0.00000 ----#----
END OF DIMENSION LOC5
DIM LOC6= LOCATION OF POINT C_1  UNITS=MM ,$
GRAPH=OFF  TEXT=OFF  MULT=10.00  OUTPUT=BOTH  HALF ANGLE=NO
AX    NOMINAL       +TOL       -TOL       MEAS        DEV     OUTTOL
Y     26.76939    0.10000   -0.10000   26.76939    0.00000    0.00000 ----#----
Z    -15.36707    0.25000   -0.25000  -15.36707    0.00000    0.00000 ----#----
END OF DIMENSION LOC6

[COLOR=#FF0000]CHECK OUTTOL CONDITION AND SET FLAG IF OUTTOL (WILL ALMOST CERTAINLY BE SO FOR MANUAL POINTS)[/COLOR]
          
 ASSIGN/RERUN=0
            IF/LOC1.X.OUTTOL<>0
            ASSIGN/RERUN=1
            END_IF/
            IF/LOC1.Y.OUTTOL<>0
            ASSIGN/RERUN=1
            END_IF/
            IF/LOC2.X.OUTTOL<>0
            ASSIGN/RERUN=1
            END_IF/
            IF/LOC2.Y.OUTTOL<>0
            ASSIGN/RERUN=1
            END_IF/
            IF/LOC3.X.OUTTOL<>0
            ASSIGN/RERUN=1
            END_IF/
            IF/LOC3.Y.OUTTOL<>0
            ASSIGN/RERUN=1
            END_IF/
            IF/LOC4.X.OUTTOL<>0
            ASSIGN/RERUN=1
            END_IF/
            IF/LOC4.Z.OUTTOL<>0
            ASSIGN/RERUN=1
            END_IF/
            IF/LOC5.X.OUTTOL<>0
            ASSIGN/RERUN=1
            END_IF/
            IF/LOC5.Z.OUTTOL<>0
            ASSIGN/RERUN=1
            END_IF/
            IF/LOC6.Y.OUTTOL<>0
            ASSIGN/RERUN=1
            END_IF/
            IF/LOC6.Z.OUTTOL<>0
            ASSIGN/RERUN=1
            END_IF/

[COLOR=#FF0000]ACT ON FLAG (IN EFFECT JUST GO TO THE DCC ALIGN)[/COLOR]

            IF_GOTO/RERUN==0,GOTO = ENDALN
            GOTO/DCCALN

Attached Files
Parents
  • NO!

    The reason I started this thread was so as to not derail your original thread!

    As I said in that thread, you cannot use iterative alignment on a manual CMM / Arm!

    You need to use a best fit alignment.

    This thread was because there was a disagreement in your original thread about how iterative alignments work, and I made this thread to demonstrate what's going on in the black-box' of the iterative alignment command.

    With respect to defining an irregular surface (curved or stepped and NOT flat) as a datum, I've said MANY times you need to perform an alignment (either iterative or best fit, in your case it must be best fit as you're on a manual CMM) and then construct an alignment plane and then define that as a datum for use with Xact.


    I've tried to be helpful but I'm done with repeating myself. I may be wrong, but I feel I've been pretty clear on the steps you need to take.
Reply
  • NO!

    The reason I started this thread was so as to not derail your original thread!

    As I said in that thread, you cannot use iterative alignment on a manual CMM / Arm!

    You need to use a best fit alignment.

    This thread was because there was a disagreement in your original thread about how iterative alignments work, and I made this thread to demonstrate what's going on in the black-box' of the iterative alignment command.

    With respect to defining an irregular surface (curved or stepped and NOT flat) as a datum, I've said MANY times you need to perform an alignment (either iterative or best fit, in your case it must be best fit as you're on a manual CMM) and then construct an alignment plane and then define that as a datum for use with Xact.


    I've tried to be helpful but I'm done with repeating myself. I may be wrong, but I feel I've been pretty clear on the steps you need to take.
Children
No Data