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.

  • Are you doing manual alignments or programming from offline and using a Readpoint? Do you use find center and sample hits on your circles?

    If you don't mind, you could do that quick program write up for a better understanding

  • I do progressive, manual alignments at the online machine. I'll whip something up for you to look at.

    Also, never used find center because in the past it hasn't worked well for me. 

  • Have you eliminated the wrist as the culprit?  Maybe it's not repeating.

    Maybe probe the Cal sphere, align to that, change wrist angle to problematic angle, probe sphere again and report location... if anything other than 0,0,0, there's a wrist problem...

    or at least in my redneck mind, that should tell you something...

  • Another possibility is that your probes/angles aren't calibrated to each other. Are you using a Master probe for calibration?

  • I'd like to look into this further. I'm honestly not sure how the calibration works, I just use the calibration option on the server software and point the probe at the sphere, let it do it's thing. 

  • Here is my code for everyone curious:

    DMISMN/'AXS83016 HOLES',05.3
    $$ PCD_PART_PROGRAM: PC-DMIS generated DMIS file
    $$ REV NUMBER : E
    $$ SER NUMBER :
    $$ STATS COUNT : 1

    UNITS/INCH,ANGDEC
    INCLUD/DMIS,'PCD_DMIS_DEFINES.DMI'
     
    D(STARTUP)=DATSET/MCS
     
    MODE/MAN
     
    FEDRAT/POSVEL,MMPS,100
     
    V(L1)=VFORM/NOM,ACT,DEV,AMT
     
    SNSMNT/XVEC,0,-1,0,ZVEC,0,0,1,MNTLEN,0,0,-3.031
    DMESW/COMAND,'LOADPROBE/2BY20'
    S(T1A0B0)=SNSDEF/PROBE,INDEX,POL,0,0,0,0,-1,3.268,0.079

    SNSLCT/SA(T1A0B0)
     
    F(PLN1)=FEAT/PLANE,CART,0.303,0.338,0.192,0,0,1
    MEAS/PLANE,F(PLN1),3
        PTMEAS/CART,1.75,1.126,0.192,0,0,1
        PTMEAS/CART,1.276,-1.051,0.192,0,0,1
        PTMEAS/CART,-2.118,0.939,0.192,0,0,1
    ENDMES

    RECALL/DA(STARTUP)
    DATDEF/FA(PLN1),DAT(A)
    D(A1_1)=DATSET/DAT(A),ZDIR
    D(A1_2)=TRANS/ZORIG,FA(PLN1)
    D(A1)=TRANS/XORIG,0.0
    F(LIN1)=FEAT/LINE,UNBND,CART,-2.146,-1.997,-0.183,1,0,0,0,-1,0
    MEAS/LINE,F(LIN1),2
        PTMEAS/CART,-2.146,-1.998,-0.179,0,-1,0
        PTMEAS/CART,2.194,-1.998,-0.187,0,-1,0
    ENDMES

    RECALL/DA(A1)
      D(A2_1)=ROTATE/ZAXIS,FA(LIN1),XDIR
      D(A2_2)=TRANS/YORIG,FA(LIN1)
    D(A2)=TRANS/XORIG,0.0
    F(PNT1)=FEAT/POINT,CART,-3,2.373,-0.139,-1,0,0
    MEAS/POINT,F(PNT1),1
        PTMEAS/CART,-3,2.373,-0.139,-1,0,0
    ENDMES

    RECALL/DA(A2)
      D(A3_1)=TRANS/XORIG,FA(PNT1)
    D(A3)=TRANS/XORIG,0.0
    MODE/AUTO
     
    DMESW/COMAND,'CLEARP/ZPLUS,0.25,ZPLUS,0,ON'
     
    F(PLN2)=FEAT/PLANE,CART,3.234,1.788,0,0,0,1
    MEAS/PLANE,F(PLN2),12
      DMESW/COMAND,'MOVE/CLEARPLANE'
        PTMEAS/CART,5.346,3.556,0,0,0,1
        PTMEAS/CART,5.292,2.105,0,0,0,1
        PTMEAS/CART,5.069,0.462,0,0,0,1
        PTMEAS/CART,4.293,0.851,0,0,0,1
        PTMEAS/CART,4.764,2.858,0,0,0,1
        PTMEAS/CART,3.777,1.782,0,0,0,1
        PTMEAS/CART,3.373,0.323,0,0,0,1
        PTMEAS/CART,2.065,2.083,0,0,0,1
        PTMEAS/CART,1.962,0.604,0,0,0,1
        PTMEAS/CART,0.82,0.508,0,0,0,1
        PTMEAS/CART,1.51,3.512,0,0,0,1
        PTMEAS/CART,0.54,2.812,0,0,0,1
    ENDMES

    F(LIN2)=FEAT/LINE,UNBND,CART,0.664,0,-0.141,1,0,0,0,-1,0
    MEAS/LINE,F(LIN2),4
      DMESW/COMAND,'MOVE/CLEARPLANE'
        PTMEAS/CART,0.664,0,-0.151,0,-1,0
        PTMEAS/CART,1.983,0,-0.153,0,-1,0
        PTMEAS/CART,3.746,0,-0.118,0,-1,0
        PTMEAS/CART,5.328,0,-0.142,0,-1,0
    ENDMES

    F(LIN3)=FEAT/LINE,UNBND,CART,0,0.608,-0.112,0,1,0,-1,0,0
    MEAS/LINE,F(LIN3),3
      DMESW/COMAND,'MOVE/CLEARPLANE'
        PTMEAS/CART,0,0.608,-0.107,-1,0,0
        PTMEAS/CART,0,1.603,-0.126,-1,0,0
        PTMEAS/CART,0,3.292,-0.103,-1,0,0
    ENDMES

    RECALL/DA(STARTUP)
    DATDEF/FA(PLN2),DAT(A)
    D(A4_1)=DATSET/DAT(A),ZDIR
    D(A4_2)=TRANS/ZORIG,FA(PLN2)
    D(A4_3)=ROTATE/ZAXIS,FA(LIN2),XDIR
    D(A4_4)=TRANS/YORIG,FA(LIN2)
    D(A4_5)=TRANS/XORIG,FA(LIN3)
    D(A4)=TRANS/XORIG,0.0
    DMESW/COMAND,'MOVE/CLEARPLANE'
     
    SNSMNT/XVEC,0,-1,0,ZVEC,0,0,1,MNTLEN,0,0,-3.031
    DMESW/COMAND,'LOADPROBE/1BY20CYLINDER'
    S(T1A90B-90)=SNSDEF/PROBE,INDEX,POL,90,-90,-1,0,0,5.039,0.059

    SNSLCT/SA(T1A90B-90)
     
    GOTO/CART,2.603,-0.769,0.361
     
    DMESW/COMAND,'MOVE/CLEARPLANE'
     
    F(CIR1)=FEAT/CIRCLE,INNER,CART,3,0,-0.222,0,-1,0,0.118
    CALL/M(PCD_AUTO_CIRCLE_607),(CIR1),3,0,-0.222,0,-1,0,'THICKNESS_NONE',0,$
      'NO','STRAIGHT','LEAST_SQR','NO','BOTH',0.394,(),(),(),'NO','DISABLED',$
      'NO',0,0,0,0,0,0,360,0.079,1,0,0,0,-1,0,0,-1,0,'3.059,0.079,-0.222,-1,0,0,$
      3.018,0.079,-0.165,-0.3050649,0,-0.9523316,2.953,0.079,-0.186,0.7991279,0,$
      -0.601161,2.952,0.079,-0.256,0.8174179,0,0.5760451,3.018,0.079,-0.278,$
      -0.3050649,0,0.9523316'
     
    T(LOC1__X)=TOL/CORTOL,XAXIS,-0.005,0.005
     
    T(LOC1__Z)=TOL/CORTOL,ZAXIS,-0.005,0.005
     
    T(LOC1__D)=TOL/DIAM,-0.005,0.005
     
    OUTPUT/FA(CIR1),TA(LOC1__X),TA(LOC1__Z),TA(LOC1__D)

  • Also never found sample hits useful since it seems to find the plane through the alignment. Code is posted in the replies now.

  • Is this in DMIS Mode? I can somewhat understand it, but can you change to Command Mode, and add it into a code block using the Insert > Code at the bottom of a reply

  • So I just took a point on an aligned part, with the probe at A90B-90, and the deviation was about 0.009"

    How would I go about fixing a wrist issue?