hexagon logo

PC-DMIS giving bad results

Need help!! Not sure why PC-DMIS keeps giving me bad results. I have created different alignments, different hits, different workplanes and views but PC-DMIS still gives me wrong numbers. Any suggestions on what is going on?

On the blueprint I have provided the Dimensions I need and the results I am getting.
I am currently running on PC DMIS 2021.1
CMM SF 7.10.7

  • Lets see the actual print ? Any of those holes threaded ?
  • Your cylinder 3 actuals are concerning. The deviations are quite high. Something looks to be off between your rotational line1 and the cylinder3 centerline. Throw some more dimensions in there and do some more manual checks to narrow down the disagreement between your two methods. ie. angle between cylinder 3 and your planes, angle&position between cylinder3 and line1, distances of the pierce points to the holes&line1.

    Since your final result is a 2d distance, chances of error tying back to how the part is aligned is high. I would also measure the cylinder3, level and align to it, then remeasure it to be certain no vector issues if your 2 holes and planes happen to be off.
  • No threaded holes. And I will upload the drawing below.
  • Easier to read

    =alignment/start,recall:use_part_setup,list=yes
    alignment/end
    mode/manual
    format/text,options,id,headings,symbols, ;nom,tol,meas,maxmin,dev,devang,outtol
    movespeed/ 300
    prehit/0.125
    retract/0.125
    touchspeed/ 3.5
    loadprobe/tool_2
    tip/t1a0b0, shankijk=0, 0, 1, angle=0
    startpoint =feat/point,cartesian
    theo/<0,0,0>,<0,0,1>
    actl/<9.5192,14.6362,-23.982>,<0,0,1>
    readpoint/
    a1 =alignment/start,recall:startup,list=yes
    alignment/trans,xaxis,startpoint
    alignment/trans,yaxis,startpoint
    alignment/trans,zaxis,startpoint
    alignment/end
    mode/dcc
    move/increment,<0,0,0.3>
    point2 =feat/contact/vector point/default,cartesian
    theo/<-0.1926,-0.4883,0.03>,<0,0,1>
    actl/<-0.1926,-0.4883,0.025>,<0,0,1>
    targ/<-0.1926,-0.4883,0.03>,<0,0,1>
    snap=no
    show feature parameters=no
    show contact parameters=yes
    avoidance move=both,distance=0.15
    show hits=no
    point3 =feat/contact/vector point/default,cartesian
    theo/<0.0375,-0.3488,0.03>,<0,0,1>
    actl/<0.0375,-0.3489,0.0247>,<0,0,1>
    targ/<0.0375,-0.3488,0.03>,<0,0,1>
    snap=no
    show feature parameters=no
    show contact parameters=yes
    avoidance move=both,distance=0.15
    show hits=no
    point4 =feat/contact/vector point/default,cartesian
    theo/<-0.1964,0.34,0.03>,<0,0,1>
    actl/<-0.1964,0.34,0.0252>,<0,0,1>
    targ/<-0.1964,0.34,0.03>,<0,0,1>
    snap=no
    show feature parameters=no
    show contact parameters=yes
    avoidance move=both,distance=0.15
    show hits=no
    point5 =feat/contact/vector point/default,cartesian
    theo/<0.0263,0.4712,0.03>,<0,0,1>
    actl/<0.0263,0.4711,0.025>,<0,0,1>
    targ/<0.0263,0.4712,0.03>,<0,0,1>
    snap=no
    show feature parameters=no
    show contact parameters=yes
    avoidance move=both,distance=0.15
    show hits=no
    plane1 =feat/plane,cartesian,triangle,no,least_sqr
    theo/<-0.0813,-0.0065,0.03>,<0,0,1>
    actl/<-0.0813,-0.0065,0.025>,<0.0013343,-0.0002879,0.9999991>
    constr/plane,bf,point2,point5,point4,point3,,
    outlier_removal/off,3
    filter/off,wavelength=0
    align2 =alignment/start,recall:a1,list=yes
    alignment/level,zplus,plane1
    alignment/trans,zaxis,plane1
    alignment/end
    prehit/0.045
    retract/0.045
    cylinder1 =feat/contact/cylinder/default,cartesian,in,least_sqr
    theo/<0,0,-0.03>,<0,0,1>,0.194,0.06
    actl/<0.0012,0.0174,-0.03>,<0.001373,0.001417,0.9999981>,0.1937,0.06
    targ/<0,0,-0.03>,<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=6,numlevels=2,depth=0.03,end offset=0.01,pitch=0
    sample method=sample_hits
    sample hits=0,spacer=0
    avoidance move=both,distance=0.15
    find hole=disabled,onerror=no,read pos=no
    show hits=no
    align3 =alignment/start,recall:align2,list=yes
    alignment/level,zplus,plane1
    alignment/trans,zaxis,plane1
    alignment/trans,xaxis,cylinder1
    alignment/trans,yaxis,cylinder1
    alignment/end
    move/increment,<0,0,2>
    move/increment,<2.35,0,0>
    cylinder2 =feat/contact/cylinder/default,cartesian,in,least_sqr
    theo/<2.25,0,0>,<0,0,1>,0.194,0.09
    actl/<2.2495,-0.002,0>,<-0.0024484,-0.0005462,0.9999969>,0.1937,0.09
    targ/<2.25,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=6,numlevels=2,depth=0.01,end offset=0.03,pitch=0
    sample method=sample_hits
    sample hits=0,spacer=0
    avoidance move=both,distance=0.3
    find hole=disabled,onerror=no,read pos=no
    show hits=no
    line1 =feat/line,cartesian,unbounded,no
    theo/<2.25,0,-0.015>,<-1,0,0>
    actl/<2.2495,-0.002,-0.015>,<-0.9999996,0.0008817,0>
    constr/line,bf,2d,cylinder2,cylinder1,,
    outlier_removal/off,3
    filter/off,wavelength=0
    align4 =alignment/start,recall:startup,list=yes
    alignment/level,zplus,plane1
    alignment/trans,zaxis,plane1
    alignment/trans,xaxis,cylinder1
    alignment/trans,yaxis,cylinder1
    alignment/rotate,xminus,to,line1,about,zplus
    alignment/end
    move/increment,<0,0,2>
    loadprobe/tool_15
    tip/t1a0b0, shankijk=0, 0, 1, angle=0
    move/increment,<0,-4,0>
    move/increment,<1.3,0,0>
    tip/t1a-35b-90, shankijk=-0.5736, 0, 0.8192, angle=-90
    prehit/0.125
    retract/0.125
    point6 =feat/contact/vector point/default,cartesian
    theo/<0.3883,0.5396,0.1367>,<-0.5735764,0,0.819152>
    actl/<0.3905,0.5397,0.1336>,<-0.5735764,0,0.819152>
    targ/<0.3883,0.5396,0.1367>,<-0.5735764,0,0.819152>
    snap=no
    show feature parameters=no
    show contact parameters=yes
    avoidance move=both,distance=0.5
    show hits=no
    point7 =feat/contact/vector point/default,cartesian
    theo/<0.3168,0.473,0.0867>,<-0.5735764,0,0.819152>
    actl/<0.3189,0.4728,0.0834>,<-0.5735764,0,0.819152>
    targ/<0.3168,0.473,0.0867>,<-0.5735764,0,0.819152>
    snap=no
    show feature parameters=no
    show contact parameters=yes
    avoidance move=both,distance=0.15
    show hits=no
    point8 =feat/contact/vector point/default,cartesian
    theo/<0.3186,-0.4312,0.088>,<-0.5735764,0,0.819152>
    actl/<0.321,-0.4315,0.0844>,<-0.5735764,0,0.819152>
    targ/<0.3186,-0.4312,0.088>,<-0.5735764,0,0.819152>
    snap=no
    show feature parameters=no
    show contact parameters=yes
    avoidance move=both,distance=0.15
    show hits=no
    point9 =feat/contact/vector point/default,cartesian
    theo/<0.4365,-0.5322,0.1705>,<-0.5735764,0,0.819152>
    actl/<0.4392,-0.5323,0.1673>,<-0.5735764,0,0.819152>
    targ/<0.4365,-0.5322,0.1705>,<-0.5735764,0,0.819152>
    snap=no
    show feature parameters=no
    show contact parameters=yes
    avoidance move=both,distance=0.3
    show hits=no
    plane2 =feat/plane,cartesian,triangle,no,least_sqr
    theo/<0.3651,0.0123,0.1205>,<-0.5735764,0,0.819152>
    actl/<0.3674,0.0122,0.1172>,<-0.5743277,-0.0003714,0.8186254>
    constr/plane,bf,point6,point9,point8,point7,,
    outlier_removal/off,3
    filter/off,wavelength=0
    cylinder3 =feat/contact/cylinder/default,cartesian,in,least_sqr
    theo/<0.7281,0,0.2805>,<-0.5735764,0,0.819152>,0.6287,0.7151
    actl/<0.7335,-0.0094,0.2843>,<-0.574195,-0.0000904,0.8187185>,0.6293,0.7151
    targ/<0.7281,0,0.2805>,<-0.5735764,0,0.819152>
    start ang=0,end ang=360
    angle vec=<0.819152,0,0.5735764>
    direction=ccw
    show feature parameters=no
    show contact parameters=yes
    numhits=8,numlevels=2,depth=0.1,end offset=0.515,pitch=0
    sample method=sample_hits
    sample hits=0,spacer=0
    avoidance move=both,distance=0.5
    find hole=disabled,onerror=no,read pos=no
    show hits=no
    move/increment,<0,0,4.5>
    move/increment,<0,-2.5,0>
    tip/t1a-95b0, shankijk=0, -0.9962, -0.0872, angle=0
    move/increment,<0,-2.5,0>
    move/increment,<0,-2,0>
    move/increment,<0,0,-9.5>
    point10 =feat/contact/vector point/default,cartesian
    theo/<0.0212,-0.6137,-0.125>,<0,0,-1>
    actl/<0.0212,-0.6136,-0.0961>,<0,0,-1>
    targ/<0.0212,-0.6137,-0.125>,<0,0,-1>
    snap=no
    show feature parameters=no
    show contact parameters=yes
    avoidance move=both,distance=0.225
    show hits=no
    point11 =feat/contact/vector point/default,cartesian
    theo/<0.3233,-0.2962,-0.125>,<0,0,-1>
    actl/<0.3232,-0.2962,-0.0958>,<0,0,-1>
    targ/<0.3233,-0.2962,-0.125>,<0,0,-1>
    snap=no
    show feature parameters=no
    show contact parameters=yes
    avoidance move=both,distance=0.15
    show hits=no
    point12 =feat/contact/vector point/default,cartesian
    theo/<0.6381,-0.5274,-0.125>,<0,0,-1>
    actl/<0.638,-0.5274,-0.0956>,<0,0,-1>
    targ/<0.6381,-0.5274,-0.125>,<0,0,-1>
    snap=no
    show feature parameters=no
    show contact parameters=yes
    avoidance move=both,distance=0.15
    show hits=no
    point13 =feat/contact/vector point/default,cartesian
    theo/<1.1921,-0.4793,-0.125>,<0,0,-1>
    actl/<1.192,-0.4791,-0.0947>,<0,0,-1>
    targ/<1.1921,-0.4793,-0.125>,<0,0,-1>
    snap=no
    show feature parameters=no
    show contact parameters=yes
    avoidance move=both,distance=0.15
    show hits=no
    point14 =feat/contact/vector point/default,cartesian
    theo/<1.7334,-0.3241,-0.125>,<0,0,-1>
    actl/<1.7333,-0.3241,-0.0938>,<0,0,-1>
    targ/<1.7334,-0.3241,-0.125>,<0,0,-1>
    snap=no
    show feature parameters=no
    show contact parameters=yes
    avoidance move=both,distance=0.15
    show hits=no
    point15 =feat/contact/vector point/default,cartesian
    theo/<2.0356,-0.5301,-0.125>,<0,0,-1>
    actl/<2.0355,-0.5301,-0.0932>,<0,0,-1>
    targ/<2.0356,-0.5301,-0.125>,<0,0,-1>
    snap=no
    show feature parameters=no
    show contact parameters=yes
    avoidance move=both,distance=0.3
    show hits=no
    plane3 =feat/plane,cartesian,triangle,no,least_sqr
    theo/<0.9906,-0.4618,-0.125>,<0,0,-1>
    actl/<0.9905,-0.4617,-0.0949>,<0.0014699,-0.0002264,-0.9999989>
    constr/plane,bf,point10,point15,point14,point13,point12,p oint11,,
    outlier_removal/off,3
    filter/off,wavelength=0
    move/increment,<0,-2.85,0>
    move/increment,<0,0,10>
    align5 =alignment/start,recall:startup,list=yes
    alignment/level,zminus,plane3
    alignment/trans,zaxis,plane3
    alignment/trans,xaxis,cylinder1
    alignment/trans,yaxis,cylinder1
    alignment/rotate,xminus,to,line1,about,zminus
    alignment/end
    dim loc1= location of cylinder cylinder3 units=in ,$
    graph=off text=off mult=10.00 output=both half angle=no
    ax nominal +tol -tol meas max min dev outtol
    y 0.0000 0.0010 0.0010 -0.0095 0.3052 -0.3241 -0.0095 0.0085 <--------
    end of dimension loc1
    point1 =feat/point,cartesian,no
    theo/<1.012,0,0>,<-0.5735764,0,0.819152>
    actl/<0.9994,-0.0094,0>,<-0.572991,-0.0002757,0.8195616>
    constr/point,pierce,cylinder3,plane3
    point16 =feat/point,cartesian,no
    theo/<0.6838,0,0.4687>,<-0.5735764,0,0.819152>
    actl/<0.6919,-0.0095,0.4399>,<-0.572991,-0.0002757,0.8195616>
    constr/point,pierce,cylinder3,plane2
    dim dist1= 2d distance from point point16 to cylinder cylinder1 par to xaxis,no_radius units=in,$
    graph=off text=off mult=10.00 output=both
    ax nominal +tol -tol meas max min dev outtol
    m 0.6830 0.0050 0.0050 0.6919 0.6919 0.6919 0.0089 0.0039 -------->
    dim dist2= 2d distance from point point1 to cylinder cylinder1 par to xaxis,no_radius units=in,$
    graph=off text=off mult=10.00 output=both
    ax nominal +tol -tol meas max min dev outtol
    m 1.0120 0.0050 0.0050 0.9994 0.9994 0.9994 -0.0126 0.0076 <--------
    
    
  • Good lord. Positional control and then everything things else is liner. So over dimensioned..... That doesn't fix your issue though... 1 thing that makes code so much easier to read. Re-name your features to the DATUMS on the print. Switch you program around. Yeah it will be longer..... Check A. Level and Set Z. Then check B and C. NEW alignment. Level to A, Rotate to B-C, Set Z on A, Set X and Y on B. Now check angled cylinder. Then create intersection from CYL to A. And use postion. Why are you suing distance and location anyways ?
  • Okay, so here's a few suggestions/ideas.

    1) Make sure probes are calibrated correctly in respect to each other. As someone said look up 'MASTER PROBE' and get your head round the concept then make sure you're stacking to it.

    2) Alignment should be Level > Rotate > Origin (in that order) but I don't think in your case it will matter (but as a test you can always dimension the datum features and check they measure zero in their respective axis)

    3) If you change your program to establish the alignment ABC first, you can then offset by 1.012 and then round by 35° so you're 'looking' straight down the cylinder. (XYZ will be 0,0,0 and vector will be 0,0,1) before measuring the angled cylinder.

    3) Make sure your constructed planes are don using best fit recomp (currently they're just best fit)

    4) Report the form of your features (datums and cylinder) to make sure you're not shanking out or have a bad hit somewhere in the datums skewing the results.

    5) Finally, you're saying the CMM results are wrong, but how are you verifying this or checking it otherwise? Are you sure the part isn't bad?

  • Ok thank you, I will these suggestion out hopefully I get good results. And we checked the center of the holes with an Indicator and the Keyence/gage pins for the other dims