hexagon logo

Multiple Ring Gauge Program

Hi, Can anyone tell me if they know a code to check multiple ring gauges within the same program rather then making a different program for each? I mean like something where i can put diameter in the start and it automatically check the gauge based on that diameter ? Can some one help me write that code if possible? Thank you in advance
  • Try playing around with something like this. I used a 1.0015" ring gage as an example.

    C1         =COMMENT/INPUT,NO,FULL SCREEN=NO,
                WHAT SIZE RING GAGE WOULD YOU LIKE TO CHECK? (IN INCHES)
                ASSIGN/V1=C1.INPUT
    C2         =COMMENT/INPUT,NO,FULL SCREEN=NO,
                HOW MANY HITS WOULD YOU LIKE TO TAKE?
                ASSIGN/V2=C2.INPUT
                COMMENT/OPER,NO,FULL SCREEN=NO,AUTO-CONTINUE=NO,OVC=NO,
                PLACE PROBE AT TDC OF RING GAGE
    PNT1       =FEAT/POINT,CARTESIAN
                THEO/<0,0,0>,<0,0,1>
                ACTL/<0,0,0>,<0,0,1>
                READPOINT/
    A1         =ALIGNMENT/START,RECALL:STARTUP,LIST=YES
                  ALIGNMENT/TRANS,XAXIS,PNT1
                  ALIGNMENT/TRANS,YAXIS,PNT1
                  ALIGNMENT/TRANS,ZAXIS,PNT1
                ALIGNMENT/END
    CIR1       =FEAT/CONTACT/CIRCLE/DEFAULT,CARTESIAN,IN,LEAST_SQR
                THEO/<0,0,0>,<0,0,1>,V1
                ACTL/<0,0,0>,<0,0,1>,1.0015
                TARG/<0,0,0>,<0,0,1>
                START ANG=0,END ANG=360
                ANGLE VEC=<1,0,0>
                DIRECTION=CW
                SHOW FEATURE PARAMETERS=NO
                SHOW CONTACT PARAMETERS=YES
                  NUMHITS=5,DEPTH=0.25,PITCH=0
                  SAMPLE METHOD=SAMPLE_HITS
                  SAMPLE HITS=0,SPACER=0
                  AVOIDANCE MOVE=NO
                  FIND HOLE=DISABLED,ONERROR=NO,READ POS=NO
                SHOW HITS=NO
    A2         =ALIGNMENT/START,RECALL:A1,LIST=YES
                  ALIGNMENT/TRANS,XAXIS,CIR1
                  ALIGNMENT/TRANS,YAXIS,CIR1
                ALIGNMENT/END
    CIR2       =FEAT/CONTACT/CIRCLE/DEFAULT,CARTESIAN,IN,LEAST_SQR
                THEO/<0,0,0>,<0,0,1>,V1
                ACTL/<0,0,0>,<0,0,1>,1.0015
                TARG/<0,0,0>,<0,0,1>
                START ANG=0,END ANG=360
                ANGLE VEC=<1,0,0>
                DIRECTION=CW
                SHOW FEATURE PARAMETERS=NO
                SHOW CONTACT PARAMETERS=YES
                  NUMHITS=V2,DEPTH=0.25,PITCH=0
                  SAMPLE METHOD=SAMPLE_HITS
                  SAMPLE HITS=3,SPACER=0.15
                  AVOIDANCE MOVE=BOTH,DISTANCE BEFORE=0.1,DISTANCE AFTER=0.1,DIRECTION=ALONG FEATURE VECTOR
                  FIND HOLE=DISABLED,ONERROR=NO,READ POS=NO
                SHOW HITS=NO
    DIM LOC1= LOCATION OF CIRCLE CIR2  UNITS=IN ,$
    GRAPH=OFF  TEXT=OFF  MULT=1.00  OUTPUT=BOTH  HALF ANGLE=NO
    AX       MEAS    NOMINAL        DEV       +TOL       -TOL     OUTTOL
    D       1.0015     V1     0.0000     0.0002     0.0002     0.0000 ----#----
    END OF DIMENSION LOC1​
    
  • The only thing I would change is for LOC1 nominal I would put the V1 variable.
  • thankyou. I will try this in morning when i am back at work
  • then save it as a subroutine and you can recall it as needed
  • PART NAME : GAGE RING
    REV NUMBER : N/A
    SER NUMBER :
    STATS COUNT : 1

    STARTUP =ALIGNMENT/START,RECALL:USE_PART_SETUP,LIST=YES
    ALIGNMENT/END
    MODE/DCC
    WORKPLANE/ZPLUS
    REPORT/LABEL, FILENAME= FILE_HEADER_MOD.LBL
    MOVESPEED/ 100
    FORMAT/TEXT,OPTIONS, ,HEADINGS,SYMBOLS, ;MEAS,NOM,TOL,DEV,OUTTOL, ,
    LOADPROBE/3X40
    TIP/T1A0B0, SHANKIJK=0, 0, 1, ANGLE=0
    MOVESPEED/ 100
    FASTPROBEMODE/ON
    DISPLAYPRECISION/4
    PREHIT/10
    RETRACT/10
    C4 =COMMENT/INPUT,NO,FULL SCREEN=NO,
    WHAT IS THE TOOL ID #?
    ASSIGN/NEWSN=C4.INPUT
    TRACEFIELD/DISPLAY=NO,REPORT=NO,DISPLAY MESSAGE=REV DATE ; REV DATE : "N/A"
    TRACEFIELD/DISPLAY=NO,REPORT=NO,DISPLAY MESSAGE=OP ; OP : "N/A"
    TRACEFIELD/DISPLAY=NO,REPORT=NO,DISPLAY MESSAGE=PROG REV ; PROG REV : "00"
    TRACEFIELD/DISPLAY=NO,REPORT=NO,DISPLAY MESSAGE=PROG REV DATE ; PROG REV DATE : "12/22/2022"
    TRACEFIELD/DISPLAY=NO,REPORT=NO,DISPLAY MESSAGE=SER NO ; SER NO : NEWSN
    C1 =COMMENT/INPUT,NO,FULL SCREEN=NO,
    WHAT SIZE RING GAGE WOULD YOU LIKE TO CHECK? (IN MILLIMETERS ONLY)
    ASSIGN/V1=C1.INPUT
    C2 =COMMENT/INPUT,NO,FULL SCREEN=NO,
    HOW MANY HITS WOULD YOU LIKE TO TAKE?
    ASSIGN/V2=C2.INPUT
    C3 =COMMENT/INPUT,NO,FULL SCREEN=NO,
    HOW DEEP TO PROBE?
    ASSIGN/V3=C3.INPUT
    COMMENT/OPER,NO,FULL SCREEN=YES,AUTO-CONTINUE=NO,
    MOVE TO TDC Ø & THEN PRESS OK TO RUN DCC
    PNT1 =FEAT/POINT,CARTESIAN
    THEO/<0,0,0>,<0,0,1>
    ACTL/<0,0,0>,<0,0,1>
    READPOINT/
    A1 =ALIGNMENT/START,RECALL:STARTUP,LIST=YES
    ALIGNMENT/TRANS,XAXIS,PNT1
    ALIGNMENT/TRANS,YAXIS,PNT1
    ALIGNMENT/TRANS,ZAXIS,PNT1
    ALIGNMENT/END
    CIR1 =FEAT/CONTACT/CIRCLE/DEFAULT,CARTESIAN,IN,LEAST_SQR
    THEO/<0,0,0>,<0,0,1>,V1
    ACTL/<0,0,0>,<0,0,1>,50
    TARG/<0,0,0>,<0,0,1>
    START ANG=0,END ANG=360
    ANGLE VEC=<1,0,0>
    DIRECTION=CCW
    SHOW FEATURE PARAMETERS=NO
    SHOW CONTACT PARAMETERS=YES
    NUMHITS=5,DEPTH=0,PITCH=0
    SAMPLE METHOD=SAMPLE_FEATURE
    SAMPLE FEATURE=NONE
    AVOIDANCE MOVE=AFTER,DISTANCE=10
    FIND HOLE=DISABLED,ONERROR=NO,READ POS=NO
    SHOW HITS=NO
    ASSIGN/V4=CIR1.DIA/1.75
    A2 =ALIGNMENT/START,RECALL:A1,LIST=YES
    ALIGNMENT/TRANS,XAXIS,CIR1
    ALIGNMENT/TRANS,YAXIS,CIR1
    ALIGNMENT/TRANS,ZAXIS,CIR1
    ALIGNMENT/END
    PLN1 =FEAT/CONTACT/PLANE/DEFAULT,CARTESIAN,OUTLINE,LEAST_SQR
    THEO/<0,0,0>,<0,0,1>
    ACTL/<0,0,0>,<0,0,1>
    TARG/<0,0,0>,<0,0,1>
    ANGLE VEC=<1,0,0>,RADIAL
    SHOW FEATURE PARAMETERS=NO
    SHOW CONTACT PARAMETERS=YES
    NUMHITS=3,NUMROWS=1
    SPACER=V4
    AVOIDANCE MOVE=BOTH,DISTANCE=10
    SHOW HITS=NO
    A3 =ALIGNMENT/START,RECALL:A2,LIST=YES
    ALIGNMENT/LEVEL,ZPLUS,PLN1
    ALIGNMENT/TRANS,ZAXIS,PLN1
    ALIGNMENT/TRANS,XAXIS,CIR1
    ALIGNMENT/TRANS,YAXIS,CIR1
    ALIGNMENT/TRANS,ZAXIS,CIR1
    ALIGNMENT/END
    PREHIT/1
    RETRACT/1
    FAST_PROBE =FEAT/CONTACT/CIRCLE/DEFAULT,CARTESIAN,IN,LEAST_SQR
    THEO/<0,0,0>,<0,0,1>,V1
    ACTL/<0,0,0>,<0,0,1>,50
    TARG/<0,0,0>,<0,0,1>
    START ANG=0,END ANG=360
    ANGLE VEC=<1,0,0>
    DIRECTION=CCW
    SHOW FEATURE PARAMETERS=NO
    SHOW CONTACT PARAMETERS=YES
    NUMHITS=V2,DEPTH=V3,PITCH=0
    SAMPLE METHOD=SAMPLE_FEATURE
    SAMPLE FEATURE=NONE
    AVOIDANCE MOVE=BEFORE,DISTANCE=10
    FIND HOLE=DISABLED,ONERROR=NO,READ POS=NO
    SHOW HITS=NO
    FASTPROBEMODE/OFF
    SLOW_PROBE =FEAT/CONTACT/CIRCLE/DEFAULT,CARTESIAN,IN,LEAST_SQR
    THEO/<0,0,0>,<0,0,1>,V1
    ACTL/<0,0,0>,<0,0,1>,50
    TARG/<0,0,0>,<0,0,1>
    START ANG=0,END ANG=360
    ANGLE VEC=<1,0,0>
    DIRECTION=CCW
    SHOW FEATURE PARAMETERS=NO
    SHOW CONTACT PARAMETERS=YES
    NUMHITS=V2,DEPTH=V3,PITCH=0
    SAMPLE METHOD=SAMPLE_FEATURE
    SAMPLE FEATURE=NONE
    AVOIDANCE MOVE=NO,DISTANCE=25
    FIND HOLE=DISABLED,ONERROR=NO,READ POS=NO
    SHOW HITS=NO
    FASTPROBEMODE/ON
    ADAPTIVE_SCAN=FEAT/CONTACT/CIRCLE/ADAPTIVE_CIRCLE_SCAN,CARTESIAN,IN,LEAST_SQR
    THEO/<0,0,0>,<0,0,1>,V1
    ACTL/<0,0,0>,<0,0,1>,50
    TARG/<0,0,0>,<0,0,1>
    START ANG=0,END ANG=360
    ANGLE VEC=<1,0,0>
    DIRECTION=CCW
    SHOW FEATURE PARAMETERS=NO
    SHOW CONTACT PARAMETERS=YES
    NUMHITS=11,DEPTH=V3,PITCH=0
    SAMPLE METHOD=SAMPLE_FEATURE
    SAMPLE FEATURE=NONE
    AVOIDANCE MOVE=AFTER,DISTANCE=25
    FIND HOLE=DISABLED,ONERROR=NO,READ POS=NO
    SHOW HITS=NO
    MOVE/POINT,NORMAL,<,,100>
    LOADPROBE/STA 1
    TIP/T1A0B0, SHANKIJK=0, 0, 1, ANGLE=0
    DIM V1+ " mm RING GAGE SIZE_FAST"= LOCATION OF CIRCLE FAST_PROBE UNITS=MM ,$
    GRAPH=OFF TEXT=OFF MULT=10.00 OUTPUT=BOTH HALF ANGLE=NO
    AX MEAS NOMINAL +TOL -TOL DEV OUTTOL
    X 0.0000 0.0000 0.0100 0.0100 0.0000 0.0000 ---#----
    Y 0.0000 0.0000 0.0100 0.0100 0.0000 0.0000 ---#----
    D 50.0000 V1 0.0100 0.0100 0.0000 0.0000 ---#----
    END OF DIMENSION V1+ " mm RING GAGE SIZE_FAST"
    DIM CIRTY1= CIRCULARITY OF CIRCLE FAST_PROBE UNITS=MM ,$
    GRAPH=OFF TEXT=OFF MULT=500.00 ARROWDENSITY=100 OUTPUT=BOTH
    AX MEAS NOMINAL +TOL -TOL DEV OUTTOL
    M 0.0000 0.0000 0.0100 0.0000 0.0000 0.0000 #-------
    ANALYSISVIEW/CIRTY1,,
    DIM V1+ " mm RING GAGE SIZE_SLOW"= LOCATION OF CIRCLE SLOW_PROBE UNITS=MM ,$
    GRAPH=OFF TEXT=OFF MULT=10.00 OUTPUT=BOTH HALF ANGLE=NO
    AX MEAS NOMINAL +TOL -TOL DEV OUTTOL
    X 0.0000 0.0000 0.0100 0.0100 0.0000 0.0000 ---#----
    Y 0.0000 0.0000 0.0100 0.0100 0.0000 0.0000 ---#----
    D 50.0000 V1 0.0100 0.0100 0.0000 0.0000 ---#----
    END OF DIMENSION V1+ " mm RING GAGE SIZE_SLOW"
    DIM CIRTY2= CIRCULARITY OF CIRCLE SLOW_PROBE UNITS=MM ,$
    GRAPH=OFF TEXT=OFF MULT=500.00 ARROWDENSITY=100 OUTPUT=BOTH
    AX MEAS NOMINAL +TOL -TOL DEV OUTTOL
    M 0.0000 0.0000 0.0100 0.0000 0.0000 0.0000 #-------
    ANALYSISVIEW/CIRTY2,,
    DIM V1+ " mm RING GAGE SIZE_SCAN"= LOCATION OF CIRCLE ADAPTIVE_SCAN UNITS=MM ,$
    GRAPH=OFF TEXT=OFF MULT=10.00 OUTPUT=BOTH HALF ANGLE=NO
    AX MEAS NOMINAL +TOL -TOL DEV OUTTOL
    X 0.0000 0.0000 0.0100 0.0100 0.0000 0.0000 ---#----
    Y 0.0000 0.0000 0.0100 0.0100 0.0000 0.0000 ---#----
    D 50.0000 V1 0.0100 0.0100 0.0000 0.0000 ---#----
    END OF DIMENSION V1+ " mm RING GAGE SIZE_SCAN"
    DIM CIRTY3= CIRCULARITY OF CIRCLE ADAPTIVE_SCAN UNITS=MM ,$
    GRAPH=OFF TEXT=OFF MULT=500.00 ARROWDENSITY=100 OUTPUT=BOTH
    AX MEAS NOMINAL +TOL -TOL DEV OUTTOL
    M 0.0000 0.0000 0.0100 0.0000 0.0000 0.0000 #-------
    ANALYSISVIEW/CIRTY3,,
    FUNCTION/Main,SHOW=YES,,
    STARTSCRIPT/
    ENDSCRIPT/
    FPTR =FILE/OPEN,C:\PROGRAM FILES\HEXAGON\CMM PRINTOUT ADDRESS\ADDRESS.TXT,READ
    V1 =FILE/READLINE,FPTR,{FN}
    FILE/CLOSE,FPTR,KEEP
    ASSIGN/VDATE=SYSTEMDATE("MM-dd-yy")
    ASSIGN/VTIME=SYSTEMTIME("hh.mm.ss_tt")
    ASSIGN/PN="ADAPTIVE RING GAGE\"
    ASSIGN/MACH="GLOBAL"
    ASSIGN/FILE=FN + PN + MACH + "_" + NEWSN +"_" + VDATE + "_" + VTIME + ".PDF"
    PRINT/REPORT,EXEC MODE=END,$
    TO_FILE=ON,APPEND=FILE,AUTO OPEN=OFF,$
    TO_PRINTER=OFF,COPIES=1,$
    TO_DMIS_REPORT=OFF,FILE_OPTION=INDEX,FILENAME=,$
    REPORT_THEORETICALS=NONE,REPORT_FEATURE_WITH_DIMEN SIONS=NO,$
    TO_EXCEL=OFF,$
    PREVIOUS_RUNS=DELETE_INSTANCES​