hexagon logo

DO/UNTIL Y-Axis Loop Issue

I've been successfully running multiple parts in a fixture using a DO/UNTIL loop and moving the origin in the X-axis. We have a family of parts that, due to our small CMM/part size/tip angles, need to be looped moving the origin in the Y-axis. Whenever I do this, the first station gets skipped, the second station runs twice in a row, and stations 3/4/5 run as they should. Code is below, A1 is my manual alignment

A1         =ALIGNMENT/START,RECALL:STARTUP,LIST=YES
              ALIGNMENT/LEVEL,XPLUS,CYL1
              ALIGNMENT/TRANS,YAXIS,CYL1
              ALIGNMENT/TRANS,ZAXIS,CYL1
              ALIGNMENT/TRANS,XAXIS,PNT1
              ALIGNMENT/ROTATE,YMINUS,TO,LIN1,ABOUT,XPLUS
            ALIGNMENT/END​ASSIGN/COUNTER=0
SKIP_ALIGN =LABEL/
            WORKPLANE/ZPLUS
            MODE/DCC
            FLY/ON
            PREHIT/1
            RETRACT/1
            ASSIGN/COUNTER=0​
            DO/
            ASSIGN/COUNTER=COUNTER+1
            IF/COUNTER==5
              ASSIGN/FIXTURE_X=0
              ASSIGN/FIXTURE_Y=304.8
            END_IF/
            IF/COUNTER==4
              ASSIGN/FIXTURE_X=0
              ASSIGN/FIXTURE_Y=228.6
            END_IF/
            IF/COUNTER==3
              ASSIGN/FIXTURE_X=0
              ASSIGN/FIXTURE_Y=152.4
            END_IF/
            IF/COUNTER==2
              ASSIGN/FIXTURE_X=0
              ASSIGN/FIXTURE_Y=76.2
            END_IF/
            IF/COUNTER==1
              ASSIGN/FIXTURE_X=0
              ASSIGN/FIXUTRE_Y=0
            GOTO/ORIGIN
            END_IF/
ORIGIN     =LABEL/
LOOP_ORIGIN=GENERIC/POINT,DEPENDENT,CARTESIAN,$
            NOM/XYZ,<0+0,0+0,0+0>,$
            MEAS/XYZ,<FIXTURE_X,FIXTURE_Y,0+0>,$
            NOM/IJK,<0+0,0+0,1+0>,$
            MEAS/IJK,<0+0,0+0,1+0>
A4         =ALIGNMENT/START,RECALL:A1,LIST=YES
              ALIGNMENT/TRANS,XAXIS,LOOP_ORIGIN
              ALIGNMENT/TRANS,YAXIS,LOOP_ORIGIN
            ALIGNMENT/END​
Parents
  • I would try something like this :
    A1 =ALIGNMENT/START,RECALL:STARTUP,LIST=YES
    ALIGNMENT/LEVEL,XPLUS,CYL1
    ALIGNMENT/TRANS,YAXIS,CYL1
    ALIGNMENT/TRANS,ZAXIS,CYL1
    ALIGNMENT/TRANS,XAXIS,PNT1
    ALIGNMENT/ROTATE,YMINUS,TO,LIN1,ABOUT,XPLUS
    ALIGNMENT/END​ASSIGN/COUNTER=0
    SKIP_ALIGN =LABEL/
    WORKPLANE/ZPLUS
    MODE/DCC
    FLY/ON
    PREHIT/1
    RETRACT/1
    ASSIGN/ZERO=0
    ASSIGN/ONE=1
    ASSIGN/COUNTER=1​
    ASSIGN/DY=76.2
    DO/
    ASSIGN/FIXTURE_Y=DY*(COUNTER-1)
    A4 =ALIGNMENT/START,RECALL:A1,LIST=YES
    ALIGNMENT/TRANS,YAXIS,CYL1
    ALIGNMENT/TRANS_OFFSET,YAXIS,FIXTURE_Y
    ALIGNMENT/END​
    (.....)
    ASSIGN/COUNTER=COUNTER+1
    UNTIL/COUNTER==6
Reply
  • I would try something like this :
    A1 =ALIGNMENT/START,RECALL:STARTUP,LIST=YES
    ALIGNMENT/LEVEL,XPLUS,CYL1
    ALIGNMENT/TRANS,YAXIS,CYL1
    ALIGNMENT/TRANS,ZAXIS,CYL1
    ALIGNMENT/TRANS,XAXIS,PNT1
    ALIGNMENT/ROTATE,YMINUS,TO,LIN1,ABOUT,XPLUS
    ALIGNMENT/END​ASSIGN/COUNTER=0
    SKIP_ALIGN =LABEL/
    WORKPLANE/ZPLUS
    MODE/DCC
    FLY/ON
    PREHIT/1
    RETRACT/1
    ASSIGN/ZERO=0
    ASSIGN/ONE=1
    ASSIGN/COUNTER=1​
    ASSIGN/DY=76.2
    DO/
    ASSIGN/FIXTURE_Y=DY*(COUNTER-1)
    A4 =ALIGNMENT/START,RECALL:A1,LIST=YES
    ALIGNMENT/TRANS,YAXIS,CYL1
    ALIGNMENT/TRANS_OFFSET,YAXIS,FIXTURE_Y
    ALIGNMENT/END​
    (.....)
    ASSIGN/COUNTER=COUNTER+1
    UNTIL/COUNTER==6
Children
No Data