hexagon logo

Do Until Loop Issue

With some downtime at work, I decided to teach myself DO UNTIL looping within PC-DMIS 2023.2. I have already played with the normal LOOP function BTW (and it works just fine).

I am trying to loop with a +Y offset of 4" for a 1X3 grid of parts, but the program keeps going back to the original part the program started at instead of advancing to the next part 4" up.

It's probably simple, but I must be missing it. What is it? Code below:

STARTUP    =ALIGNMENT/START,RECALL:USE_PART_SETUP,LIST=YES
            ALIGNMENT/END
            MODE/MANUAL
            FORMAT/TEXT,OPTIONS, ,HEADINGS,SYMBOLS, ;NOM,TOL,MEAS,DEV,OUTTOL, ,
            TEMPCOMP/METHOD = AUTOMATIC,MATERIAL = Stainless steel,CTE=17.3
              ,SET WARNING LIMIT = TRUE,MINIMUM = 10,MAXIMUM = 40
              ,PART SENSOR NUM=DEFAULT,X SCALE= 20.1763,Y SCALE= 19.644,Z SCALE= 20.1001,PART TEMP=20.0408
            MOVESPEED/ 100
            FLY/ON
            TOUCHSPEED/ 3.5
            LOADPROBE/1MM_NO_EXTENSION
            TIP/T1A0B0, SHANKIJK=0, 0, 1, ANGLE=0
C1         =COMMENT/INPUT,NO,FULL SCREEN=NO,
            How many parts are loaded?
            COMMENT/OPER,NO,FULL SCREEN=NO,AUTO-CONTINUE=NO,OVC=NO,
            Place probe tip at the lower-left corner at the first 1-2-3 block nearest to you on the right column of parts.
PNT1       =FEAT/POINT,CARTESIAN
            THEO/<0,0,0>,<0,0,1>
            ACTL/<12.6602,9.1396,-32.3321>,<0,0,1>
            READPOINT/
            ASSIGN/COUNTER=0
            DO/
              ASSIGN/COUNTER_ACT=COUNTER+1
              IF/COUNTER_ACT==1
                ASSIGN/GRID_Y=0
              END_IF/
              IF/COUNTER_ACT==2
                ASSIGN/GRID_Y=4
              END_IF/
              IF/COUNTER_ACT==3
                ASSIGN/GRID_Y=8
              END_IF/
MAN_ALN      =ALIGNMENT/START,RECALL:STARTUP,LIST=YES
                ALIGNMENT/TRANS,XAXIS,PNT1
                ALIGNMENT/TRANS,YAXIS,PNT1
                ALIGNMENT/TRANS,ZAXIS,PNT1
              ALIGNMENT/END
              MODE/DCC
              CLEARP/ZPLUS,0.1,ZPLUS,0,OFF
              MOVE/CLEARPLANE
PLN1         =FEAT/CONTACT/PLANE/DEFAULT,CARTESIAN,OUTLINE,LEAST_SQR
              THEO/<1.8534,0.8354,0>,<0,0,1>
              ACTL/<1.8534,0.8354,0>,<0,0,1>
              TARG/<1.8534,0.8354,0>,<0,0,1>
              ANGLE VEC=<1,0,0>,SQUARE
              SHOW FEATURE PARAMETERS=NO
              SHOW CONTACT PARAMETERS=NO
A2           =ALIGNMENT/START,RECALL:MAN_ALN,LIST=YES
                ALIGNMENT/LEVEL,ZPLUS,PLN1
                ALIGNMENT/TRANS,ZAXIS,PLN1
              ALIGNMENT/END
              MOVE/CLEARPLANE
LIN1         =FEAT/CONTACT/LINE/DEFAULT,CARTESIAN,UNBOUNDED
              THEO/<0,0.1386,-0.0394>,<0,1,0>,<-1,0,0>,<0,0,1>,1.5104
              ACTL/<-0.0152,0.1387,-0.0394>,<-0.0008412,0.9999996,0>,<-0.9999996,-0.0008412,0>,<0,0,1>,1.5106
              TARG/<0,0.1386,-0.0394>,<0,1,0>,<-1,0,0>,<0,0,1>
              SHOW FEATURE PARAMETERS=NO
              SHOW CONTACT PARAMETERS=NO
              MOVE/CLEARPLANE
LIN2         =FEAT/CONTACT/LINE/DEFAULT,CARTESIAN,UNBOUNDED
              THEO/<0.3317,0,-0.0394>,<1,0,0>,<0,-1,0>,<0,0,1>,2.4316
              ACTL/<0.3317,-0.0316,-0.0394>,<0.9999997,0.0007414,0>,<0.0007414,-0.9999997,0>,<0,0,1>,2.4316
              TARG/<0.3317,0,-0.0394>,<1,0,0>,<0,-1,0>,<0,0,1>
              SHOW FEATURE PARAMETERS=NO
              SHOW CONTACT PARAMETERS=NO
DCC_ALN      =ALIGNMENT/START,RECALL:A2,LIST=YES
                ALIGNMENT/LEVEL,ZPLUS,PLN1
                ALIGNMENT/ROTATE,XPLUS,TO,LIN2,ABOUT,ZPLUS
                ALIGNMENT/TRANS,XAXIS,LIN1
                ALIGNMENT/TRANS,YAXIS,LIN2
                ALIGNMENT/TRANS,ZAXIS,PLN1
              ALIGNMENT/END
              MOVE/CLEARPLANE
DATUM_A      =FEAT/CONTACT/PLANE/DEFAULT,CARTESIAN,OUTLINE,LEAST_SQR
              THEO/<1.6716,0.9737,0>,<0,0,1>
              ACTL/<1.6716,0.9737,0>,<0.0000086,-0.000005,1>
              TARG/<1.6716,0.9737,0>,<0,0,1>
              ANGLE VEC=<1,0,0>,SQUARE
              SHOW FEATURE PARAMETERS=NO
              SHOW CONTACT PARAMETERS=NO
              DATDEF/A,FEATURES=DATUM_A,,
              MOVE/CLEARPLANE
DATUM_B      =FEAT/CONTACT/PLANE/DEFAULT,CARTESIAN,OUTLINE,LEAST_SQR
              THEO/<3,0.6928,-0.1336>,<1,0,0>
              ACTL/<2.9999,0.6928,-0.1336>,<1,0.0000519,-0.0000317>
              TARG/<3,0.6928,-0.1336>,<1,0,0>
              ANGLE VEC=<0,0,-1>,SQUARE
              SHOW FEATURE PARAMETERS=NO
              SHOW CONTACT PARAMETERS=NO
              DATDEF/B,FEATURES=DATUM_B,,
              MOVE/CLEARPLANE
DATUM_C      =FEAT/CONTACT/PLANE/DEFAULT,CARTESIAN,OUTLINE,LEAST_SQR
              THEO/<1.7178,2,-0.4368>,<0,1,0>
              ACTL/<1.7178,1.9998,-0.4368>,<-0.000005,1,0.0002188>
              TARG/<1.7178,2,-0.4368>,<0,1,0>
              ANGLE VEC=<-1,0,0>,SQUARE
              SHOW FEATURE PARAMETERS=NO
              SHOW CONTACT PARAMETERS=NO
              DATDEF/C,FEATURES=DATUM_C,,
ABC_ALN      =ALIGNMENT/START,RECALL[emoticon:6D505171FAA4497C85C5CA27290C555D]CC_ALN,LIST=YES
                ALIGNMENT/LEVEL,ZPLUS,DATUM_A
                ALIGNMENT/ROTATE,YPLUS,TO,DATUM_C,ABOUT,ZPLUS
                ALIGNMENT/TRANS,XAXIS,DATUM_B
                ALIGNMENT/TRANS,YAXIS,DATUM_C
                ALIGNMENT/TRANS,ZAXIS,DATUM_A
              ALIGNMENT/END
              COMMENT/REPT,
              "PART # "+COUNTER_ACT
              
1            =GEOMETRIC_TOLERANCE/STANDARD=ASME Y14.5,SHOWEXPANDED=YES,
              DESCRIPTION=OFF,,
              UNITS=IN,OUTPUT=BOTH,ARROWDENSITY=100,
              SEGMENT_1,FLATNESS,0.001,TOL_ZONE_MATH=DEFAULT,
              TEXT=OFF,CADGRAPH=OFF,REPORTGRAPH=OFF,MULT=10,
                MEASURED:
                  DATUM_A:0.0000,
              ADD
              FEATURES/DATUM_A,,
2            =GEOMETRIC_TOLERANCE/STANDARD=ASME Y14.5,SHOWEXPANDED=YES,
              DESCRIPTION=OFF,,
              DATUM_MATH=DEFAULT,
              UNITS=IN,OUTPUT=BOTH,ARROWDENSITY=100,
              SEGMENT_1,PERPENDICULARITY,PLANAR,0.0005,__,A,<dat>,
              TEXT=OFF,CADGRAPH=OFF,REPORTGRAPH=OFF,MULT=10,
                MEASURED:
                  DATUM_B:0.0000,
              FEATURES/DATUM_B,,
3            =GEOMETRIC_TOLERANCE/STANDARD=ASME Y14.5,SHOWEXPANDED=YES,
              DESCRIPTION=OFF,,
              DATUM_MATH=DEFAULT,
              UNITS=IN,OUTPUT=BOTH,ARROWDENSITY=100,
              SEGMENT_1,PERPENDICULARITY,PLANAR,0.0005,__,A,B,
              TEXT=OFF,CADGRAPH=OFF,REPORTGRAPH=OFF,MULT=10,
                MEASURED:
                  DATUM_C:0.0002,
              FEATURES/DATUM_C,,
  DIM 4= 2D DISTANCE FROM LINE LIN1 TO PLANE DATUM_B PAR TO   XAXIS,NO_RADIUS  UNITS=IN,$
  GRAPH=OFF  TEXT=OFF  MULT=10.00  OUTPUT=BOTH
  AX    NOMINAL       +TOL       -TOL       MEAS        DEV     OUTTOL
  M       3.0000     0.0020     0.0020     2.9999    -0.0001     0.0000 ----#----
  DIM 5= 2D DISTANCE FROM LINE LIN2 TO PLANE DATUM_C PAR TO   YAXIS,NO_RADIUS  UNITS=IN,$
  GRAPH=OFF  TEXT=OFF  MULT=10.00  OUTPUT=BOTH
  AX    NOMINAL       +TOL       -TOL       MEAS        DEV     OUTTOL
  M       2.0000     0.0020     0.0020     1.9998    -0.0002     0.0000 ----#----
              MOVE/CLEARPLANE
LOOP_ORIGIN  =GENERIC/POINT,DEPENDENT,CARTESIAN,$
              NOM/XYZ,<0+0,0+0,0+0>,$
              MEAS/XYZ,<0+0,GRID_Y,0+0>,$
              NOM/IJK,<0,0,1>,$
              MEAS/IJK,<0,0,1>
A1           =ALIGNMENT/START,RECALL:A2,LIST=YES
                ALIGNMENT/TRANS_OFFSET,YAXIS,LOOP_ORIGIN
              ALIGNMENT/END
            UNTIL/COUNTER_ACT==3​