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

  • Workplane?
    Do you have points made at your cylinder centroids? For at least your cylinder3 I would think you'd want points to evaluate(top/bottom), not a rotated cylinder's center axis.
  • Without seeing more code no one can really help you find mistake.. 1thing. LEVEL AND ROTATE ALWAYS. Then define X-Y-Z in any order... Your alignment is rotating to X, but then your distance is // to Y. That means if you use location you would have 1 number and your DISTANCE dimension would be different. DISTANCE is kinda like " location with possible different alignment " . I'm guessing your just comparing apples to oranges. If the numbers don't come out on CAD, you are kinda dead in the water before you start.
  • Try using the intersection of the cylinder and the part face to create a construction instead of a pierce point.
  • =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,point11,,
    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 <--------
  • Thanks but I have tried this as well and the results are the same. I uploaded the whole program in the comment above.
  • So when you run this OFFLINE, your nominals are correct ?

    LAST TIME ..... LEVEL AND ROTATE. Then define X-Y-Z in any order. No exceptions, Take this to heart.
  • Make sure both of your probes and all their respective angles are calibrated properly. look up and implement a "Master Probe" if you haven't already.
  • Yes when I run it offline my nominals are correct. I used Auto-align to my Datums called out. And I tried level and rotate and I get the same readings.
  • I am checking the distance to Y the drawing is an error. And for the dimensions to the pierce points I am checking on X
  • I had made a pervious program with a single probe, calibrated all angles and the results were the same.