hexagon logo

Range data from a loop.

I'm trying to pull the data from a loop to create a range. I'm creating a small program to periodically check the repeatability of our machine(s).

Here is the meat and potatoes of what I have

V1         =LOOP/START,ID=YES,NUMBER=10,START=1,SKIP=,
              OFFSET:XAXIS=0,YAXIS=0,ZAXIS=0,ANGLE=0
            MOVE/CLEARPLANE
SPH3       =FEAT/CONTACT/SPHERE,CARTESIAN,OUT,LEAST_SQR
            THEO/<0,0,0>,<0,0,1>,DIA
            ACTL/<-0.0019,-0.0007,-0.0015>,<0,0,1>,25.3972
            TARG/<0,0,0>,<0,0,1>
            START ANGLE 1=-360,END ANG 1=0
            START ANGLE 2=0,END ANG 2=90
            ANGLE VEC=<1,0,0>
            SHOW FEATURE PARAMETERS=NO
            SHOW CONTACT PARAMETERS=YES
              NUMHITS=8,NUMROWS=3
              SAMPLE HITS=0
              AVOIDANCE MOVE=NO,DISTANCE=0
            SHOW HITS=NO
            COMMENT/REPT,   
            COMMENT/REPT,    
DIM D1= LOCATION OF SPHERE SPH3  UNITS=MM ,$
GRAPH=OFF  TEXT=OFF  MULT=10.00  OUTPUT=BOTH
AX       MEAS    NOMINAL       +TOL       -TOL        DEV     OUTTOL
X     -0.0019     0.0000     0.0050     0.0050    -0.0019     0.0000 --#-----
Y     -0.0007     0.0000     0.0050     0.0050    -0.0007     0.0000 ---#----
Z     -0.0015     0.0000     0.0050     0.0050    -0.0015     0.0000 --#-----
END OF DIMENSION D1
            LOOP/END
            ASSIGN/XCENTER[I]=SPH3.X
            ASSIGN/YCENTER[I]=SPH3.Y
            ASSIGN/ZCENTER[I]=SPH3.Z
            ASSIGN/DCENTER[I]=SPH3.D
            ASSIGN/XRANGE=MAX(XCENTER)- MIN(XCENTER)
            ASSIGN/YRANGE=MAX(YCENTER)- MIN(YCENTER)
            ASSIGN/ZRANGE=MAX(ZCENTER)- MIN(ZCENTER)
            ASSIGN/DRANGE=MAX(DCENTER)- MIN(DCENTER)



I know I'm close, but I can't seem to get my assignments to read ALL the data from the loop. It's only getting the last part.

Thanks for the help.
  • I'm trying to pull the data from a loop to create a range. I'm creating a small program to periodically check the repeatability of our machine(s).

    Here is the meat and potatoes of what I have

    V1         =LOOP/START,ID=YES,NUMBER=10,START=1,SKIP=,
                  OFFSET:XAXIS=0,YAXIS=0,ZAXIS=0,ANGLE=0
                MOVE/CLEARPLANE
    SPH3       =FEAT/CONTACT/SPHERE,CARTESIAN,OUT,LEAST_SQR
                THEO/<0,0,0>,<0,0,1>,DIA
                ACTL/<-0.0019,-0.0007,-0.0015>,<0,0,1>,25.3972
                TARG/<0,0,0>,<0,0,1>
                START ANGLE 1=-360,END ANG 1=0
                START ANGLE 2=0,END ANG 2=90
                ANGLE VEC=<1,0,0>
                SHOW FEATURE PARAMETERS=NO
                SHOW CONTACT PARAMETERS=YES
                  NUMHITS=8,NUMROWS=3
                  SAMPLE HITS=0
                  AVOIDANCE MOVE=NO,DISTANCE=0
                SHOW HITS=NO
                COMMENT/REPT,   
                COMMENT/REPT,    
    DIM D1= LOCATION OF SPHERE SPH3  UNITS=MM ,$
    GRAPH=OFF  TEXT=OFF  MULT=10.00  OUTPUT=BOTH
    AX       MEAS    NOMINAL       +TOL       -TOL        DEV     OUTTOL
    X     -0.0019     0.0000     0.0050     0.0050    -0.0019     0.0000 --#-----
    Y     -0.0007     0.0000     0.0050     0.0050    -0.0007     0.0000 ---#----
    Z     -0.0015     0.0000     0.0050     0.0050    -0.0015     0.0000 --#-----
    END OF DIMENSION D1
                LOOP/END
                ASSIGN/XCENTER[I]=SPH3.X
                ASSIGN/YCENTER[I]=SPH3.Y
                ASSIGN/ZCENTER[I]=SPH3.Z
                ASSIGN/DCENTER[I]=SPH3.D
                ASSIGN/XRANGE=MAX(XCENTER)- MIN(XCENTER)
                ASSIGN/YRANGE=MAX(YCENTER)- MIN(YCENTER)
                ASSIGN/ZRANGE=MAX(ZCENTER)- MIN(ZCENTER)
                ASSIGN/DRANGE=MAX(DCENTER)- MIN(DCENTER)



    I know I'm close, but I can't seem to get my assignments to read ALL the data from the loop. It's only getting the last part.

    Thanks for the help.


    Try this:

    ASSIGN/XRANGE=MAX(ARRAY(XCENTER[1], XCENTER[2], XCENTER[3], XCENTER[4], XCENTER[5], XCENTER[6], XCENTER[7], XCENTER[8], XCENTER[9], XCENTER[10]))- MIN(ARRAY(XCENTER[1], XCENTER[2], XCENTER[3], XCENTER[4], XCENTER[5], XCENTER[6], XCENTER[7], XCENTER[8], XCENTER[9], XCENTER[10]))
    ASSIGN/YRANGE=MAX(ARRAY(YCENTER[1], YCENTER[2], YCENTER[3], YCENTER[4], YCENTER[5], YCENTER[6], YCENTER[7], YCENTER[8], YCENTER[9], YCENTER[10]))- MIN(ARRAY(YCENTER[1], YCENTER[2], YCENTER[3], YCENTER[4], YCENTER[5], YCENTER[6], YCENTER[7], YCENTER[8], YCENTER[9], YCENTER[10]))
    ASSIGN/ZRANGE=MAX(ARRAY(ZCENTER[1], ZCENTER[2], ZCENTER[3], ZCENTER[4], ZCENTER[5], ZCENTER[6], ZCENTER[7], ZCENTER[8], ZCENTER[9], ZCENTER[10]))- MIN(ARRAY(ZCENTER[1], ZCENTER[2], ZCENTER[3], ZCENTER[4], ZCENTER[5], ZCENTER[6], ZCENTER[7], ZCENTER[8], ZCENTER[9], ZCENTER[10]))
    ASSIGN/DRANGE=MAX(ARRAY(DCENTER[1], DCENTER[2], DCENTER[3], DCENTER[4], DCENTER[5], DCENTER[6], DCENTER[7], DCENTER[8], DCENTER[9], DCENTER[10]))- MIN(ARRAY(DCENTER[1], DCENTER[2], DCENTER[3], DCENTER[4], DCENTER[5], DCENTER[6], DCENTER[7], DCENTER[8], DCENTER[9], DCENTER[10]))