hexagon logo

Measured Dimension Exactly the Nominal is Showing up Red

When a measured dimension comes in exactly at the nominal (or exactly at one of the limits) the report puts in red. Is there anyway to change this so it shows as acceptable? I assume that the computer is rounding to tenths but before rounding the measured value is less than a tenth out of tolerance which is why its showing red.

Thank you guys

Parents
  • Try displaying 6 decimal places.  I bet that it is actually a few millionths under tolerance.  The evaluation that turns the text red happens before the values are rounded and displayed on the report.  So, if it is even a tiny bit out of tolerance, even beyond your displayprecision value, it will still turn the text red.  

    There may be a 'fix' for this by editing the report labels.  Here is a link to a thread in which NinjaBadger offers some code to do that: max-or-min-not-shown-in-red-only-if-meas-is-oot

  • Thanks for the response. I read through that thread and the code appears similar but looks like I would have to write my own code to do what I need. Would have to be some line of code that rounds the value before the evaluation. To tell you the truth figuring out what code to write for that and which cell to place it in is beyond me. 

    It looks like my options are to display a silly number of unrepeatable decimals or just live with the report showing red when the measured value is acceptable.

    The main problem now is that I am setting up 'inspect' on my computer and at the end of the routine it simply says pass or fail in big letters on the screen. And a part is failing because its OD is exactly at nominal (after rounding).

  • I normally just live with there being red numbers on reports like that.  It can be a nice alarm state that tells everyone that a feature is on the limit of the tolerance, or technically an insignificant amount out of tolerance.  It can be helpful since most people seem to just look for any red on the report rather than actually evaluate the numbers and plan accordingly.  Like, maybe they shouldn't continue to make parts that are at or near the edge of the tolerance.  

    There is another workaround you may consider.  You can open up the tolerances just a bit such that they still round to the specified tolerance.  For example, the screenshot you provided could be programmed with a tolerance of +.000049/-.002049.  The report with 4 decimal places displayed would still show a tolerance of +.0000/-.0002, but parts that are a smidge out of that range would still evaluate to being in tolerance. 

  • I've managed to figure out how to get the text to not always be red unless out of tolerance, but the issue comes in with the bar graphic still staying red if something is still out after the 4th decimal place, and the Axis can probably be tweaked, just need to play with it more. This code also forces reporting as 4 decimal places, even if you are at 7 decimal places on display precision. What this does is count from left to right 0 is first character. Decimal is second character, followed by the next 4 decimal places.

    So 0 decimal 1 2 3 4 (0.1234)

    NOMINAL CELL
    =TOL(LEFT(NOMINAL:N,6),RIGHT(DIM_OUTTOL:N,6), 0.0, 0.0)
    
    +TOL CELL
    =TOL(RIGHT(F_PLUS_TOL:N,6),RIGHT(DIM_OUTTOL:N,6),0.0, 0.0)
    
    -TOL CELL
    =TOL(LEFT(F_MINUS_TOL:N,6),LEFT(DIM_OUTTOL:N,6),0.0,0.0)
    
    MEAS CELL
    =TOL(LEFT(DIM_MEASURED:N,6),LEFT(DIM_OUTTOL:N,6),0.0,0.0)
    
    DEV CELL
    =TOL(LEFT(DIM_DEVIATION:N,6),LEFT(DIM_OUTTOL:N,6),0.0,0.0)
    
    OUTTOL CELL
    =TOL(LEFT(DIM_OUTTOL:N,6),LEFT(DIM_OUTTOL:N,6),0.0,0.0)
    
    MIN CELL
    =TOL(LEFT(DIM_MIN:N,6),LEFT(DIM_OUTTOL:N,6),0.0,0.0)
    
    MAX CELL
    =TOL(LEFT(DIM_MAX:N,6),LEFT(DIM_OUTTOL:N,6),0.0,0.0)
    

    What Cris_C suggested is better, since it automatically changes colors to how you need them, and if anything is out beyond the 4th decimal it won't flag until it's .0001.

    But it IS possible, just tedious.

    I just realized this does not take into account anything that can measure 2 digits before the decimal, like 25.1234, it will become 25.123 and so forth.

    Do not use this code at all.

    Unless you have small numbers, or it will cut off your decimals too short.

  •   's post: you could even wholesale implement the change by making a single assignment:

    assign/RND=0.00049
    then each dimensional tolerance, type in x tolerance value +RND for UTL, or x tolerance value -RND for LTL

    that way the routine code shows you've implemented it for that feature.

  • That's a nice one! 

    Its all fun and games until the auditor asks to see your code Fearful

Reply Children