hexagon logo

Issues with measuring holes at 90 degrees.

I've never been able to get this to work. Everything works great when I'm measuring holes level to the surface plate, but as soon as I articulate the probe to A90B0, A90B90, or any other combination, all of my holes come out at least .010" shifted from the actual values. 

I'm guessing it's something to do with my alignment, but it seems like I've tried everything. I've used the normal level, created a plane on that 90deg surface and leveled to that, articulated the probe first before measuring the plane and then leveling to that, and I'm just stuck and don't know how to get this to work. Can't find any other forum posts relating to this problem.

The main issue here is I'm forced to re-fixture the part 6 different times and write 6 different programs just to check every hole in every face. It's extremely time consuming and I'm hoping someone has an easy solution that I'm completely missing.

I can write a quick program just showing the issue if that helps.

  • PART NAME  : AXS83016 HOLES
    REV NUMBER : E
    SER NUMBER :
    STATS COUNT : 1
     
    STARTUP    =ALIGNMENT/START,RECALL:USE_PART_SETUP,LIST=YES
                ALIGNMENT/END
                MODE/MANUAL
                MOVESPEED/ 100
                FORMAT/TEXT,OPTIONS, ,HEADINGS,SYMBOLS, ;NOM,TOL,MEAS,DEV,OUTTOL, ,
                LOADPROBE/2BY20
                TIP/T1A0B0, SHANKIJK=0, 0, 1, ANGLE=0
    PLN1       =FEAT/PLANE,CARTESIAN,TRIANGLE
                THEO/<0.303,0.338,0.192>,<0,0,1>
                ACTL/<12.5,11.474,-2.135>,<0.0026072,0.0003248,0.9999965>
                MEAS/PLANE,3
                  HIT/BASIC,NORMAL,<1.75,1.126,0.192>,<0,0,1>,<11.936,11.917,-2.134>,USE THEO=YES
                  HIT/BASIC,NORMAL,<1.276,-1.051,0.192>,<0,0,1>,<13.095,11.917,-2.137>,USE THEO=YES
                  HIT/BASIC,NORMAL,<-2.118,0.939,0.192>,<0,0,1>,<12.468,10.589,-2.134>,USE THEO=YES
                ENDMEAS/
    A1         =ALIGNMENT/START,RECALL:STARTUP,LIST=YES
                  ALIGNMENT/LEVEL,ZPLUS,PLN1
                  ALIGNMENT/TRANS,ZAXIS,PLN1
                ALIGNMENT/END
    LIN1       =FEAT/LINE,CARTESIAN,UNBOUNDED
                THEO/<-2.146,-1.997,-0.183>,<1,0,0>
                ACTL/<14.152,10.596,-0.119>,<-0.0027556,0.9999962,0>
                MEAS/LINE,2,ZPLUS
                  HIT/BASIC,NORMAL,<-2.146,-1.998,-0.179>,<0,-1,0>,<14.152,10.596,-0.119>,USE THEO=YES
                  HIT/BASIC,NORMAL,<2.194,-1.998,-0.187>,<0,-1,0>,<14.149,11.635,-0.119>,USE THEO=YES
                ENDMEAS/
    A2         =ALIGNMENT/START,RECALL:A1,LIST=YES
                  ALIGNMENT/ROTATE,XPLUS,TO,LIN1,ABOUT,ZPLUS
                  ALIGNMENT/TRANS,YAXIS,LIN1
                ALIGNMENT/END
    PNT1       =FEAT/POINT,CARTESIAN
                THEO/<-3,2.373,-0.139>,<-1,0,0>
                ACTL/<7.05,1.332,-0.131>,<-1,0,0>
                MEAS/POINT,1,WORKPLANE
                  HIT/BASIC,NORMAL,<-3,2.373,-0.139>,<-1,0,0>,<7.05,1.332,-0.131>,USE THEO=YES
                ENDMEAS/
    A3         =ALIGNMENT/START,RECALL:A2,LIST=YES
                  ALIGNMENT/TRANS,XAXIS,PNT1
                ALIGNMENT/END
                MODE/DCC
                CLEARP/ZPLUS,0.25,ZPLUS,0,ON
    PLN2       =FEAT/PLANE,CARTESIAN,TRIANGLE
                THEO/<3.234,1.788,0>,<0,0,1>
                ACTL/<3.234,1.788,0.001>,<0.0000908,-0.0002629,1>
                MEAS/PLANE,12
                  MOVE/CLEARPLANE
                  HIT/BASIC,NORMAL,<5.346,3.556,0>,<0,0,1>,<5.346,3.556,0.001>,USE THEO=YES
                  HIT/BASIC,NORMAL,<5.292,2.105,0>,<0,0,1>,<5.292,2.105,0>,USE THEO=YES
                  HIT/BASIC,NORMAL,<5.069,0.462,0>,<0,0,1>,<5.069,0.462,0>,USE THEO=YES
                  HIT/BASIC,NORMAL,<4.293,0.851,0>,<0,0,1>,<4.293,0.851,0>,USE THEO=YES
                  HIT/BASIC,NORMAL,<4.764,2.858,0>,<0,0,1>,<4.764,2.858,0.001>,USE THEO=YES
                  HIT/BASIC,NORMAL,<3.777,1.782,0>,<0,0,1>,<3.777,1.781,0>,USE THEO=YES
                  HIT/BASIC,NORMAL,<3.373,0.323,0>,<0,0,1>,<3.373,0.322,0>,USE THEO=YES
                  HIT/BASIC,NORMAL,<2.065,2.083,0>,<0,0,1>,<2.066,2.083,0>,USE THEO=YES
                  HIT/BASIC,NORMAL,<1.962,0.604,0>,<0,0,1>,<1.962,0.603,0>,USE THEO=YES
                  HIT/BASIC,NORMAL,<0.82,0.508,0>,<0,0,1>,<0.821,0.508,0.001>,USE THEO=YES
                  HIT/BASIC,NORMAL,<1.51,3.512,0>,<0,0,1>,<1.51,3.511,0.001>,USE THEO=YES
                  HIT/BASIC,NORMAL,<0.54,2.812,0>,<0,0,1>,<0.54,2.812,0.001>,USE THEO=YES
                ENDMEAS/
    LIN2       =FEAT/LINE,CARTESIAN,UNBOUNDED
                THEO/<0.664,0,-0.141>,<1,0,0>
                ACTL/<0.664,0,-0.141>,<1,-0.0000451,0>
                MEAS/LINE,4,ZPLUS
                  MOVE/CLEARPLANE
                  HIT/BASIC,NORMAL,<0.664,0,-0.151>,<0,-1,0>,<0.664,0,-0.151>,USE THEO=YES
                  HIT/BASIC,NORMAL,<1.983,0,-0.153>,<0,-1,0>,<1.983,0,-0.153>,USE THEO=YES
                  HIT/BASIC,NORMAL,<3.746,0,-0.118>,<0,-1,0>,<3.746,0,-0.118>,USE THEO=YES
                  HIT/BASIC,NORMAL,<5.328,0,-0.142>,<0,-1,0>,<5.329,0,-0.142>,USE THEO=YES
                ENDMEAS/
    LIN3       =FEAT/LINE,CARTESIAN,UNBOUNDED
                THEO/<0,0.608,-0.112>,<0,1,0>
                ACTL/<0,0.607,-0.112>,<0.0002027,1,0>
                MEAS/LINE,3,ZPLUS
                  MOVE/CLEARPLANE
                  HIT/BASIC,NORMAL,<0,0.608,-0.107>,<-1,0,0>,<0,0.607,-0.107>,USE THEO=YES
                  HIT/BASIC,NORMAL,<0,1.603,-0.126>,<-1,0,0>,<0,1.603,-0.126>,USE THEO=YES
                  HIT/BASIC,NORMAL,<0,3.292,-0.103>,<-1,0,0>,<0.001,3.292,-0.103>,USE THEO=YES
                ENDMEAS/
    A4         =ALIGNMENT/START,RECALL:STARTUP,LIST=YES
                  ALIGNMENT/LEVEL,ZPLUS,PLN2
                  ALIGNMENT/TRANS,ZAXIS,PLN2
                  ALIGNMENT/ROTATE,XPLUS,TO,LIN2,ABOUT,ZPLUS
                  ALIGNMENT/TRANS,YAXIS,LIN2
                  ALIGNMENT/TRANS,XAXIS,LIN3
                ALIGNMENT/END
                MOVE/CLEARPLANE
                LOADPROBE/1BY20CYLINDER
                MOVE/CLEARPLANE
                TIP/T1A90B-90, SHANKIJK=-0.013, -1, 0.002, ANGLE=179.99
                MOVE/POINT,NORMAL,<2.603,-0.769,0.361>
                MOVE/CLEARPLANE
    CIR1       =FEAT/CONTACT/CIRCLE/DEFAULT,CARTESIAN,IN,LEAST_SQR
                THEO/<3,0,-0.222>,<0,-1,0>,0.118
                ACTL/<2.988,0,-0.218>,<0,-1,0>,0.102
                TARG/<3,0,-0.222>,<0,-1,0>
                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.079,PITCH=0
                  SAMPLE METHOD=SAMPLE_HITS
                  SAMPLE HITS=0,SPACER=0
                  AVOIDANCE MOVE=BOTH,DISTANCE BEFORE=0.394,DISTANCE AFTER=0.394,DIRECTION=ALONG FEATURE VECTOR
                  FIND HOLE=DISABLED,ONERROR=NO,READ POS=NO
                SHOW HITS=NO
    DIM LOC1= LOCATION OF CIRCLE CIR1  UNITS=IN ,$
    GRAPH=OFF  TEXT=OFF  MULT=10.00  OUTPUT=BOTH  HALF ANGLE=NO
    AX    NOMINAL       +TOL       -TOL       MEAS        DEV     OUTTOL
    X        3.000      0.005      0.005      2.988     -0.012      0.007 <--------
    Z       -0.222      0.005      0.005     -0.218      0.004      0.000 --------#
    D        0.118      0.005      0.005      0.102     -0.016      0.011 <--------
    END OF DIMENSION LOC1

  • This may be resolved. I had to level to the plane at 90 degrees and align everything else as usual.

    I swear up and down I've tried this in the past and it didn't help whatsoever. Thank you guys for all your help.

  • You shouldn't normally have to align to each side of the part after establishing a solid base alignment. If you're using more than 1 probe build to inspect these parts, which it looks like you are, then a calibration issue seems possible. That's the reason I asked about a master probe. 

  • Yeah, you could be right, I just tried to implement this into a program and it completely failed.

    Problem is I don't even know how to begin fixing the calibration. I'm totally lost.

  • Search Master probe in this forum. There are numerous threads. Here's one that explains the process and rationale. 

    "Master Probe" question - PC-DMIS for CMMs - PC-DMIS - Nexus Community (hexagon.com)

  • Accuracy in CMM relies on minimizing cosine error whenever possible. Determining the center of a circle is a key method to reduce variation between the measured and actual values. In certain conditions, the number of sample hits can significantly influence the accuracy, especially when measuring circles on thin materials, as they help better define the surface for precise measurements.

  • Hexagon has a free pc-dmis basics that you should take. If you don't understand the calibration and what effects it can have, then you should insist that you be sent to onsite training at a hexagon facility for the 101 / 201 training. 

    https://learning.hexagonmi.com/login.asp 

  • I'm sorry. I assumed your styli were correctly calibrated.  After reading the comments after my post, I feel you should first calibrate correctly so that all your styli and tip angles relate to one another correctly.

    Basically, assign a MASTER probe.  Short and stiff is best.  Calibrate in A0B0 and when asked if the sphere has moved, answer YES.  After this is complete, calibrate all other styli and tip angles answering NO when asked if the sphere has moved.