hexagon logo

Re-measuring points before a program ends?

I work with several people who routinely have issues running our CMM. I’m trying to make it easier for them by adding to the programming. Routinely, our guys will forget to clean off the sample or won‘t clean it well enough. This will sometimes cause a measurement errors. The dimensions automatically transfer to our SPC software as soon as the program ends. I would like to use an input comment and case commands to allow the operator to re-measure specific features if a measurement error occurs. Ideally this will happen before the program ends and the dimensions are transferred. I have the input comment and case commands, but I do not know how to tell PCDMIS to re-measure two specific points. Instead it executes the program from the points selected and runs until the end. This is because I am using a IF_GOTO and a label for the features.

Is there a way to program PCDMIS 2014 MR1 (vision) to allow the operator to select specific features to re-measure (or re-hit) without re-measuring everything after the selected points? Basic script editor? Subroutines? I was also thinking of using a counter and saying IF the count is 2 on those features GOTO the end. What do you guys think?

Thanks!

Optive Performance 2z443, PCDMIS 2014 MR1 using the zoom lens.
  • Here is something that worked for me.

    At the end of every feature, put this code in (CIR1 as example)

    CIR1 =FEAT/VISION/CIRCLE/DEFAULT,CARTESIAN,IN,LEAST_SQR
    THEO/<11.25,-11.25,0>,<0,0,1>,3.25,0,0
    ACTL/<-26.895,24.584,-85.35>,<0,0,1>,3.234,0,0
    TARG/<11.25,-11.25,0>,<0,0,1>
    ANGLE VEC=<1,0,0>
    SHOW FEATURE PARAMETERS=NO
    SHOW_VISION_PARAMETERS=YES
    TYPE=AUTOMATIC HIT TARGET
    COVERAGE=100%
    COVERAGE ACTIVE TARGETS=4
    MAGNIFICATION=1
    HIT TARGET COLOR=YELLOW,NOMINAL COLOR=GREEN
    HIT TARGET=EA1,0,1,NORMAL,0.325
    FILTER=YES,2,YES,5,2
    EDGE=DOMINANT EDGE,[?]->[?],-1,-1,-1,NO,Top Light=<OFF,0,OFF>,Bottom Light=<OFF,65,ON>,Ring Light=<OFF,0,ON>
    FOCUS=NO
    IF/C1.INPUT=="YES"
    GOTO/L1
    END_IF/

    CIR2 =FEAT/VISION/CIRCLE.....
    IF/C1.INPUT=="YES"
    GOTO/L1
    END_IF/

    At the end of the program, put something like this...

    L1 =LABEL/ **** THIS LABEL NEEDS TO GO BEFORE THE DIMENSIONS SO YOUR DIMENSIONS KEEP GETTING REFRESHED

    *******

    ALL YOUR DIMENSIONS ARE HERE

    *******


    PRINT/REPORT,EXEC MODE=END,$
    TO_FILE= ON,APPEND =Q:\OPTIV 321 PROGRAMS\177136-0001 - A - BOTTOM.PDF,AUTO OPEN REPORT= ON,$
    TO_PRINTER=OFF,COPIES=1,$
    TO_DMIS_REPORT=ON,FILE_OPTION=INDEX,FILENAME=,$
    REPORT_THEORETICALS=ALL,REPORT_FEATURE_WITH_DIMENSIONS=YES,$
    TO_EXCEL_OUTPUT=OFF,
    PREVIOUS_RUNS=DELETE_INSTANCES
    This allows the user to look at the report with out saving the program. The program will also continue on.

    C1 =COMMENT/YESNO,NO,FULL SCREEN=NO,AUTO-CONTINUE=NO,
    Do you want to re run any features?
    IF/C1.INPUT=="YES"
    C2 =COMMENT/INPUT,NO,FULL SCREEN=NO,
    what feature do you want to re run?

    1 for cir1
    2 for cir 2
    3 for lin 1
    Type in all your features here in the input comment

    IF_GOTO/C2.INPUT=="1",GOTO = CIR1
    IF_GOTO/C2.INPUT=="2",GOTO = CIR2
    IF_GOTO/C2.INPUT=="3",GOTO = LIN1
    Type all IF/Goto for every feature that was in the input.

    END_IF/




    Its going to take awhile, but its the only solution I can think of. If you are measuring midlines or midpoints, you might have to put some extra GO/TO statements to refresh the lines and points that constructed the mid lines/points.

    Hope this helps