hexagon logo

Repeatability issue, suspecting "leveling" on a cylinder

Hello all! Following... a tricky one!

CYL_A =FEAT/CYLINDER,CARTESIAN,IN,LEAST_SQR,NO
THEO/<0,0,-21>,<0,0,-1>,7.75,4
ACTL/<0.0055,0.0007,-20.9971>,<-0.0001267,-0.000003,-1>,7.7542,4.01
CONSTR/CYLINDER,BF,PNTB1,PNTB2,PNTB3,PNTB4,PNTB5,PNTB6,PN TB7,PNTB8,PNTB9,PNTB10,PNTB11,PNTB12,PNTB13,PNTB14 ,PNTB15,PNTB16,PNTB17,PNTB18,,
AL_REF_A =ALIGNMENT/START,RECALL:A_PIECE,LIST=YES
ALIGNMENT/LEVEL,ZMINUS,CYL_A
ALIGNMENT/ROTATE,XPLUS,TO,LIN1,ABOUT,ZMINUS
ALIGNMENT/TRANS,XAXIS,CYL_A
ALIGNMENT/TRANS,YAXIS,CYL_A
ALIGNMENT/TRANS,ZAXIS,PLN2
ALIGNMENT/END


This is my alignment on a cylinde constracted from points on Z axis at -19 / -21 / -23 as Z coordinates. Keep in mind that I have points at around 60 degs on the left and another 60 degs on the right "forming" incomplete inner part circles since there is material missing north and south side of the part. This is my datum and seems to be consistent as a cylinder both at cylindricity and diameter.

In any case. I have 6 "semi" circles on the outside to form 3 circles ( I am probing left and right again of the part) at Z values -5 / -12.5 / -18

CER7 =FEAT/CONTACT/CIRCLE/DEFAULT,CARTESIAN,OUT,LEAST_SQR
THEO/<V0,V0,-5>,<V0,V0,1>,12.86,0
ACTL/<-0.0293,-0.0004,-5>,<0,0,1>,12.8863,0
TARG/<V0,V0,-5>,<V0,V0,1>
START ANG=-50,END ANG=230
ANGLE VEC=<V0,0+1,V0>
DIRECTION=CW
SHOW FEATURE PARAMETERS=NO
SHOW CONTACT PARAMETERS=YES
NUMHITS=5,DEPTH=0,PITCH=0
SAMPLE METHOD=SAMPLE_HITS
SAMPLE HITS=0,SPACER=0
AVOIDANCE MOVE=NO,DISTANCE=10
FIND HOLE=DISABLED,ONERROR=NO,READ POS=NO
SHOW HITS=YES
HIT/BASIC,<5.0669,3.9587,-5>,<0.7880108,0.6156615,0>,<5.0623,3.9473,-4.9989>
HIT/BASIC,<6.0797,2.0934,-5>,<0.9455186,0.3255682,0>,<6.0663,2.092,-4.9997>
HIT/BASIC,<6.43,0,-5>,<1,0,0>,<6.4121,0.001,-5.0028>
HIT/BASIC,<6.0797,-2.0934,-5>,<0.9455186,-0.3255682,0>,<6.0669,-2.0893,-4.9973>
HIT/BASIC,<5.0669,-3.9587,-5>,<0.7880108,-0.6156615,0>,<5.0621,-3.9488,-4.9983>
ENDMEAS/
CER8 =FEAT/CONTACT/CIRCLE/DEFAULT,CARTESIAN,OUT,LEAST_SQR
THEO/<V0,V0,-12.5>,<V0,V0,1>,12.86,0
ACTL/<-0.02,-0.0008,-12.5>,<0,0,1>,12.8713,0
TARG/<V0,V0,-12.5>,<0,0,1>
START ANG=0-35,END ANG=0+35
ANGLE VEC=<V0,V0,1>
DIRECTION=CCW
SHOW FEATURE PARAMETERS=NO
SHOW CONTACT PARAMETERS=YES
NUMHITS=5,DEPTH=0,PITCH=0
SAMPLE METHOD=SAMPLE_HITS
SAMPLE HITS=0,SPACER=0
AVOIDANCE MOVE=NO,DISTANCE=10
FIND HOLE=DISABLED,ONERROR=NO,READ POS=NO
SHOW HITS=YES
HIT/BASIC,<5.3927,-3.502,-12.5>,<0.8386706,-0.544639,0>,<5.3837,-3.4963,-12.5014>
HIT/BASIC,<6.1652,-1.8262,-12.5>,<0.9588197,-0.2840153,0>,<6.1528,-1.8214,-12.502>
HIT/BASIC,<6.43,0,-12.5>,<1,0,0>,<6.4156,-0.0032,-12.4938>
HIT/BASIC,<6.1652,1.8262,-12.5>,<0.9588197,0.2840153,0>,<6.1522,1.8219,-12.5004>
HIT/BASIC,<5.3927,3.502,-12.5>,<0.8386706,0.544639,0>,<5.3844,3.4934,-12.4991>
ENDMEAS/
CER9 =FEAT/CONTACT/CIRCLE/DEFAULT,CARTESIAN,OUT,LEAST_SQR
THEO/<V0,V0,-18>,<V0,V0,1>,12.86,0
ACTL/<-0.0233,-0.0013,-18>,<0,0,1>,12.8753,0
TARG/<V0,V0,-18>,<V0,V0,1>
START ANG=0-50,END ANG=230+0
ANGLE VEC=<V0,0+1,0+0>
DIRECTION=CW
SHOW FEATURE PARAMETERS=NO
SHOW CONTACT PARAMETERS=YES
NUMHITS=5,DEPTH=0,PITCH=0
SAMPLE METHOD=SAMPLE_HITS
SAMPLE HITS=0,SPACER=0
AVOIDANCE MOVE=NO,DISTANCE=10
FIND HOLE=DISABLED,ONERROR=NO,READ POS=NO
SHOW HITS=YES
HIT/BASIC,<5.0669,3.9587,-18>,<0.7880108,0.6156615,0>,<5.0576,3.951,-18.0043>
HIT/BASIC,<6.0797,2.0934,-18>,<0.9455186,0.3255682,0>,<6.0667,2.0903,-18.0007>
HIT/BASIC,<6.43,0,-18>,<1,0,0>,<6.4135,0.0017,-17.9992>
HIT/BASIC,<6.0797,-2.0934,-18>,<0.9455186,-0.3255682,0>,<6.0661,-2.089,-18.0017>
HIT/BASIC,<5.0669,-3.9587,-18>,<0.7880108,-0.6156615,0>,<5.0593,-3.9529,-17.9999>
ENDMEAS/
MOVE/POINT,NORMAL,<10,-7,8>
MOVE/POINT,NORMAL,<-10,-7,8>
CER10 =FEAT/CONTACT/CIRCLE/DEFAULT,CARTESIAN,OUT,LEAST_SQR
THEO/<V0,V0,-5>,<V0,V0,1>,12.86,0
ACTL/<0,0,-5>,<0,0,1>,12.86,0
TARG/<V0,V0,-5>,<0,0,1>
START ANG=0+230,END ANG=0+130
ANGLE VEC=<V0,V0,1>
DIRECTION=CW
SHOW FEATURE PARAMETERS=NO
SHOW CONTACT PARAMETERS=YES
NUMHITS=5,DEPTH=0,PITCH=0
SAMPLE METHOD=SAMPLE_HITS
SAMPLE HITS=0,SPACER=0
AVOIDANCE MOVE=NO,DISTANCE=10
FIND HOLE=DISABLED,ONERROR=NO,READ POS=NO
SHOW HITS=YES
HIT/BASIC,<-4.3025,-4.7784,-5>,<-0.6691306,-0.7431448,0>,<-4.3025,-4.7784,-5>
HIT/BASIC,<-5.8741,-2.6153,-5>,<-0.9135455,-0.4067366,0>,<-5.8741,-2.6153,-5>
HIT/BASIC,<-6.43,0,-5>,<-1,0,0>,<-6.43,0,-5>
HIT/BASIC,<-5.8741,2.6153,-5>,<-0.9135455,0.4067366,0>,<-5.8741,2.6153,-5>
HIT/BASIC,<-4.3025,4.7784,-5>,<-0.6691306,0.7431448,0>,<-4.3025,4.7784,-5>
ENDMEAS/
CER11 =FEAT/CONTACT/CIRCLE/DEFAULT,CARTESIAN,OUT,LEAST_SQR
THEO/<V0,V0,-12.5>,<V0,V0,1>,12.86,0
ACTL/<0,0,-12.5>,<0,0,1>,12.8223,0
TARG/<V0,V0,-12.5>,<0,0,1>
START ANG=0+45,END ANG=0+115
ANGLE VEC=<V0,0+1,0>
DIRECTION=CCW
SHOW FEATURE PARAMETERS=NO
SHOW CONTACT PARAMETERS=YES
NUMHITS=5,DEPTH=0,PITCH=0
SAMPLE METHOD=SAMPLE_HITS
SAMPLE HITS=0,SPACER=0
AVOIDANCE MOVE=NO,DISTANCE=10
FIND HOLE=DISABLED,ONERROR=NO,READ POS=NO
SHOW HITS=YES
HIT/BASIC,<-4.7026,4.3852,-12.5>,<-0.7313537,0.6819984,0>,<-4.8833,4.9793,-12.3707>
HIT/BASIC,<-5.7544,2.8691,-12.5>,<-0.8949344,0.4461978,0>,<-5.9313,3.4675,-12.2888>
HIT/BASIC,<-6.3323,1.1166,-12.5>,<-0.9848078,0.1736482,0>,<-6.5055,1.7185,-12.1912>
HIT/BASIC,<-6.3887,-0.7279,-12.5>,<-0.9935719,-0.1132032,0>,<-6.557,-0.1211,-12.1076>
HIT/BASIC,<-5.9188,-2.5124,-12.5>,<-0.9205049,-0.3907311,0>,<-6.0848,-1.8983,-12.0174>
ENDMEAS/
CER12 =FEAT/CONTACT/CIRCLE/DEFAULT,CARTESIAN,OUT,LEAST_SQR
THEO/<V0,V0,-18>,<V0,V0,1>,12.86,0
ACTL/<-0.1875,0.3366,-17.649>,<0.0018237,0.0512188,0.9986858>,12.8411,0
TARG/<V0,V0,-18>,<0,0,1>
START ANG=0+220,END ANG=0+140
ANGLE VEC=<V0,V0,1>
DIRECTION=CW
SHOW FEATURE PARAMETERS=NO
SHOW CONTACT PARAMETERS=YES
NUMHITS=5,DEPTH=0,PITCH=0
SAMPLE METHOD=SAMPLE_HITS
SAMPLE HITS=0,SPACER=0
AVOIDANCE MOVE=NO,DISTANCE=10
FIND HOLE=DISABLED,ONERROR=NO,READ POS=NO
SHOW HITS=YES
HIT/BASIC,<-5.0669,-3.9587,-18>,<-0.7880108,-0.6156615,0>,<-5.2411,-3.6184,-17.4386>
HIT/BASIC,<-6.0797,-2.0934,-18>,<-0.9455186,-0.3255682,0>,<-6.253,-1.7646,-17.533>
HIT/BASIC,<-6.43,0,-18>,<-1,0,0>,<-6.6082,0.32,-17.6444>
HIT/BASIC,<-6.0797,2.0934,-18>,<-0.9455186,0.3255682,0>,<-6.2634,2.4101,-17.7432>
HIT/BASIC,<-5.0669,3.9587,-18>,<-0.7880108,0.6156615,0>,<-5.2594,4.2687,-17.841>
ENDMEAS/
MOVE/POINT,NORMAL,<-10,7,8>
Ø12_86_5 =FEAT/CIRCLE,CARTESIAN,OUT,LEAST_SQR,YES
THEO/<-0.0298,-0.026,-4.95>,<-0.0004096,-0.0006184,0.9999997>,12.86
ACTL/<-0.0067,-0.0001,-4.9997>,<0,0,1>,12.8529
CONSTR/CIRCLE,BF,2D,CER10.HITS[1..CER10.NUMHITS],CER7.HITS[1..CER7.NUMHITS],,
OUTLIER_REMOVAL/OFF,3
FILTER/OFF,UPR=0
Ø12_86_12_5=FEAT/CIRCLE,CARTESIAN,OUT,LEAST_SQR,YES
THEO/<-0.0298,-0.026,-4.95>,<-0.0004096,-0.0006184,0.9999997>,12.86
ACTL/<-0.1132,0.2985,-12.3472>,<0,0,1>,13.0627
CONSTR/CIRCLE,BF,2D,CER11.HITS[1..CER11.NUMHITS],CER8.HITS[1..CER8.NUMHITS],,
OUTLIER_REMOVAL/OFF,3
FILTER/OFF,UPR=0
Ø12_86_18 =FEAT/CIRCLE,CARTESIAN,OUT,LEAST_SQR,YES
THEO/<-0.0298,-0.026,-4.95>,<-0.0004096,-0.0006184,0.9999997>,12.86
ACTL/<-0.095,0.1678,-17.8206>,<0,0,1>,13.0068
CONSTR/CIRCLE,BF,2D,CER12.HITS[1..CER12.NUMHITS],CER9.HITS[1..CER9.NUMHITS],,
OUTLIER_REMOVAL/OFF,3
FILTER/OFF,UPR=0


No problem with their circularity and diameter either. The issue comes with the repeatability of the circles that are the furthest away from the probings of my datum A, meaning circle -5 and -12.5
The -5 one has terrible repeatability in terms of true position with 0.03mm range of measurements. This is not the case with my circle at -18 which is constructed with the same logic and it is basicly the same tool that is creating it in the CNC machine and same probes and everything in CMM.


What am I missing? Where is the mistake? Could it be the level on a cylinder and how the 2d circle is projected? Does this justify the dispersion? I am not moving the part between the measurements and all other locations / positions / features are consistent.

DIM LOC_0_05_12_86_HAUT_A= POSITION OF CIRCLE Ø12_86_5 UNITS=MM ,$
GRAPH=OFF TEXT=OFF MULT=10.00 OUTPUT=BOTH FIT TO DATUMS=OFF DEV PERPEN CENTERLINE=OFF DISPLAY=DIAMETER
AX NOMINAL +TOL -TOL BONUS MEAS DEV OUTTOL
X V0 -0.0067 -0.0067
Y V0 -0.0001 -0.0001
DF 12.8600 0.0500 0.0500 12.8529 -0.0071 0.0000 #-
TP RFS 0.0500 0.0000 0.0133 0.0133 0.0000 #-
END OF DIMENSION LOC_0_05_12_86_HAUT_A
DIM LOC_0_05_12_86_MILIEU_A= POSITION OF CIRCLE Ø12_86_12_5 UNITS=MM ,$
GRAPH=OFF TEXT=OFF MULT=10.00 OUTPUT=BOTH FIT TO DATUMS=OFF DEV PERPEN CENTERLINE=OFF DISPLAY=DIAMETER
AX NOMINAL +TOL -TOL BONUS MEAS DEV OUTTOL
X V0 -0.1135 -0.1135
Y V0 0.2984 0.2984
DF 12.8600 0.0500 0.0500 13.0627 0.2027 0.1527 ->
TP RFS 0.0500 0.0000 0.6386 0.6386 0.5886 ->
END OF DIMENSION LOC_0_05_12_86_MILIEU_A
DIM LOC_0_05_12_86_BAS_A= POSITION OF CIRCLE Ø12_86_18 UNITS=MM ,$
GRAPH=OFF TEXT=OFF MULT=10.00 OUTPUT=BOTH FIT TO DATUMS=OFF DEV PERPEN CENTERLINE=OFF DISPLAY=DIAMETER
AX NOMINAL +TOL -TOL BONUS MEAS DEV OUTTOL
X V0 -0.0951 -0.0951
Y V0 0.1677 0.1677
DF 12.8600 0.0500 0.0500 13.0068 0.1468 0.0968 ->
TP RFS 0.0500 0.0000 0.3856 0.3856 0.3356 ->
END OF DIMENSION LOC_0_05_12_86_BAS_A


Thanks in advance for your answers and time.
  • These theoretical vectors look odd to me (in red below), especially for 2D features. It makes me question the theoretical locations. You may want to double check those numbers.

    Since you are using variables to define the theoretical locations of the input features, you might have better luck if you change the blue YES's to NO's and let the software calculate the nominals from the input features. Otherwise, you may need to use variables in these constructions to define the theoretical values.

    Ø12_86_5 =FEAT/CIRCLE,CARTESIAN,OUT,LEAST_SQR,YES
    THEO/<-0.0298,-0.026,-4.95>,<-0.0004096,-0.0006184,0.9999997>,12.86
    ACTL/<-0.0067,-0.0001,-4.9997>,<0,0,1>,12.8529
    CONSTR/CIRCLE,BF,2D,CER10.HITS[1..CER10.NUMHITS],CER7.HITS[1..CER7.NUMHITS],,
    OUTLIER_REMOVAL/OFF,3
    FILTER/OFF,UPR=0
    Ø12_86_12_5=FEAT/CIRCLE,CARTESIAN,OUT,LEAST_SQR,YES
    THEO/<-0.0298,-0.026,-4.95>,<-0.0004096,-0.0006184,0.9999997>,12.86
    ACTL/<-0.1132,0.2985,-12.3472>,<0,0,1>,13.0627
    CONSTR/CIRCLE,BF,2D,CER11.HITS[1..CER11.NUMHITS],CER8.HITS[1..CER8.NUMHITS],,
    OUTLIER_REMOVAL/OFF,3
    FILTER/OFF,UPR=0
    Ø12_86_18 =FEAT/CIRCLE,CARTESIAN,OUT,LEAST_SQR,YES
    THEO/<-0.0298,-0.026,-4.95>,<-0.0004096,-0.0006184,0.9999997>,12.86
    ACTL/<-0.095,0.1678,-17.8206>,<0,0,1>,13.0068
    CONSTR/CIRCLE,BF,2D,CER12.HITS[1..CER12.NUMHITS],CER9.HITS[1..CER9.NUMHITS],,
    OUTLIER_REMOVAL/OFF,3
    FILTER/OFF,UPR=0
  • Actually this is a colleague's program that I am trying to modify and I copy pasted the code of the circles before my modif. I have also tried with constructed circles that have good values there. I have also tried with vector points and constructed circles from them directly, still not getting good results.

    Finally, accepting that this is indeed an error, why it is not repeatable? Nothing changes and the part is not moving, let alone that 1/3 of the circles has good repeatability and is exactly the same vectors and nominals.

    PS: The yes and no that you have highlighted, well I am emparassed to admit that have no idea what it does. The help file does not have it and there is nothing that I found on it on these forums. Can you please quote me a guide or what it is written in the help file of later versions please? Current version 2017
  • I 'think' that makes it (or doesn't make it) dependent on the alignment it is created in.
  • Hmm that makes sense although there is info nowhere to be found for this one. I have searched for multiple occassions in the past for this info but in vain

  • PS: The yes and no that you have highlighted, well I am emparassed to admit that have no idea what it does. The help file does not have it and there is nothing that I found on it on these forums. Can you please quote me a guide or what it is written in the help file of later versions please? Current version 2017


    The YES at the end of the first line is to 'Specify Theos' - the check box at the bottom of the construction dialog window that allows you to override the calculated nominals and type in your own nominal values. If you leave this unchecked ('NO' in the edit window) the nominals will be calculated based on the input features.

    The measuring routine you are working with is using variables to define the nominal positions of the measured arcs and then constructing circles from the points in those arcs. If the values of those variables change, the nominals of the constructed feature would also need to change, but having Specify Theos active locks those values to always be based on the original value of those variables.

    Link to help file entry: https://docs.hexagonmi.com/pcdmis/2020.1/en/helpcenter/mergedProjects/core/16_const_topics/Specifying_Feature_Theoreticals.htm


  • The YES at the end of the first line is to 'Specify Theos' - the check box at the bottom of the construction dialog window that allows you to override the calculated nominals and type in your own nominal values. If you leave this unchecked ('NO' in the edit window) the nominals will be calculated based on the input features.

    The measuring routine you are working with is using variables to define the nominal positions of the measured arcs and then constructing circles from the points in those arcs. If the values of those variables change, the nominals of the constructed feature would also need to change, but having Specify Theos active locks those values to always be based on the original value of those variables.

    Link to help file entry: https://docs.hexagonmi.com/pcdmis/2020.1/en/helpcenter/mergedProjects/core/16_const_topics/Specifying_Feature_Theoreticals.htm


    It would be great to have it in the help file instead of this mess...



    It's not even tog5 there...

    In any case, I will retry with simple vector points and with saying no there. I will get back with the outcomes when I have them! Thanks a lot anyhow!
  • I would create a BFRE cylinder for the alignment...
    For circles, I would construct 3D circles with outlier removal on "On".
  • I would create a BFRE cylinder for the alignment...
    For circles, I would construct 3D circles with outlier removal on "On".


    Since the circles for the alignment cylinder have been probed with the correct vectors (through auto circles) isn't a BFRE cylinder construction unnecessary? What is the gain here? ( I am only asking to learn Slight smile )

    As for the 3d circles, my c/p code is before my modification. I had change them to 2D although I did not see a meaningful change. Since there are 3 similar constructed circles and the further they are from the leveling feature probing, the worst are getting in terms of repeatability... I still tend to believe this is the leveling on a cylinder issue.

    I mean... the vector leveling on a cylinder means that the projection of the circles on the planes normal to that vector (at the different Z values), is affecting the True position result. even a few decimals difference in the vector direction can have a big impact (always talking about repeatability) 10 mm away on where the centers are projected.
  • I was talking abot CYL_A, which is constructed from point...
  • Hello all! Following... a tricky one!

    CYL_A =FEAT/CYLINDER,CARTESIAN,IN,LEAST_SQR,NO
    THEO/<0,0,-21>,<0,0,-1>,7.75,4
    ACTL/<0.0055,0.0007,-20.9971>,<-0.0001267,-0.000003,-1>,7.7542,4.01
    CONSTR/CYLINDER,BF,PNTB1,PNTB2,PNTB3,PNTB4,PNTB5,PNTB6,PN TB7,PNTB8,PNTB9,PNTB10,PNTB11,PNTB12,PNTB13,PNTB14 ,PNTB15,PNTB16,PNTB17,PNTB18,,
    AL_REF_A =ALIGNMENT/START,RECALL:A_PIECE,LIST=YES
    ALIGNMENT/LEVEL,ZMINUS,CYL_A
    ALIGNMENT/ROTATE,XPLUS,TO,LIN1,ABOUT,ZMINUS
    ALIGNMENT/TRANS,XAXIS,CYL_A
    ALIGNMENT/TRANS,YAXIS,CYL_A
    ALIGNMENT/TRANS,ZAXIS,PLN2
    ALIGNMENT/END


    This is my alignment on a cylinde constracted from points on Z axis at -19 / -21 / -23 as Z coordinates. Keep in mind that I have points at around 60 degs on the left and another 60 degs on the right "forming" incomplete inner part circles since there is material missing north and south side of the part. This is my datum and seems to be consistent as a cylinder both at cylindricity and diameter.

    In any case. I have 6 "semi" circles on the outside to form 3 circles ( I am probing left and right again of the part) at Z values -5 / -12.5 / -18

    CER7 =FEAT/CONTACT/CIRCLE/DEFAULT,CARTESIAN,OUT,LEAST_SQR
    THEO/<V0,V0,-5>,<V0,V0,1>,12.86,0
    ACTL/<-0.0293,-0.0004,-5>,<0,0,1>,12.8863,0
    TARG/<V0,V0,-5>,<V0,V0,1>
    START ANG=-50,END ANG=230
    ANGLE VEC=<V0,0+1,V0>
    DIRECTION=CW
    SHOW FEATURE PARAMETERS=NO
    SHOW CONTACT PARAMETERS=YES
    NUMHITS=5,DEPTH=0,PITCH=0
    SAMPLE METHOD=SAMPLE_HITS
    SAMPLE HITS=0,SPACER=0
    AVOIDANCE MOVE=NO,DISTANCE=10
    FIND HOLE=DISABLED,ONERROR=NO,READ POS=NO
    SHOW HITS=YES
    HIT/BASIC,<5.0669,3.9587,-5>,<0.7880108,0.6156615,0>,<5.0623,3.9473,-4.9989>
    HIT/BASIC,<6.0797,2.0934,-5>,<0.9455186,0.3255682,0>,<6.0663,2.092,-4.9997>
    HIT/BASIC,<6.43,0,-5>,<1,0,0>,<6.4121,0.001,-5.0028>
    HIT/BASIC,<6.0797,-2.0934,-5>,<0.9455186,-0.3255682,0>,<6.0669,-2.0893,-4.9973>
    HIT/BASIC,<5.0669,-3.9587,-5>,<0.7880108,-0.6156615,0>,<5.0621,-3.9488,-4.9983>
    ENDMEAS/
    CER8 =FEAT/CONTACT/CIRCLE/DEFAULT,CARTESIAN,OUT,LEAST_SQR
    THEO/<V0,V0,-12.5>,<V0,V0,1>,12.86,0
    ACTL/<-0.02,-0.0008,-12.5>,<0,0,1>,12.8713,0
    TARG/<V0,V0,-12.5>,<0,0,1>
    START ANG=0-35,END ANG=0+35
    ANGLE VEC=<V0,V0,1>
    DIRECTION=CCW
    SHOW FEATURE PARAMETERS=NO
    SHOW CONTACT PARAMETERS=YES
    NUMHITS=5,DEPTH=0,PITCH=0
    SAMPLE METHOD=SAMPLE_HITS
    SAMPLE HITS=0,SPACER=0
    AVOIDANCE MOVE=NO,DISTANCE=10
    FIND HOLE=DISABLED,ONERROR=NO,READ POS=NO
    SHOW HITS=YES
    HIT/BASIC,<5.3927,-3.502,-12.5>,<0.8386706,-0.544639,0>,<5.3837,-3.4963,-12.5014>
    HIT/BASIC,<6.1652,-1.8262,-12.5>,<0.9588197,-0.2840153,0>,<6.1528,-1.8214,-12.502>
    HIT/BASIC,<6.43,0,-12.5>,<1,0,0>,<6.4156,-0.0032,-12.4938>
    HIT/BASIC,<6.1652,1.8262,-12.5>,<0.9588197,0.2840153,0>,<6.1522,1.8219,-12.5004>
    HIT/BASIC,<5.3927,3.502,-12.5>,<0.8386706,0.544639,0>,<5.3844,3.4934,-12.4991>
    ENDMEAS/
    CER9 =FEAT/CONTACT/CIRCLE/DEFAULT,CARTESIAN,OUT,LEAST_SQR
    THEO/<V0,V0,-18>,<V0,V0,1>,12.86,0
    ACTL/<-0.0233,-0.0013,-18>,<0,0,1>,12.8753,0
    TARG/<V0,V0,-18>,<V0,V0,1>
    START ANG=0-50,END ANG=230+0
    ANGLE VEC=<V0,0+1,0+0>
    DIRECTION=CW
    SHOW FEATURE PARAMETERS=NO
    SHOW CONTACT PARAMETERS=YES
    NUMHITS=5,DEPTH=0,PITCH=0
    SAMPLE METHOD=SAMPLE_HITS
    SAMPLE HITS=0,SPACER=0
    AVOIDANCE MOVE=NO,DISTANCE=10
    FIND HOLE=DISABLED,ONERROR=NO,READ POS=NO
    SHOW HITS=YES
    HIT/BASIC,<5.0669,3.9587,-18>,<0.7880108,0.6156615,0>,<5.0576,3.951,-18.0043>
    HIT/BASIC,<6.0797,2.0934,-18>,<0.9455186,0.3255682,0>,<6.0667,2.0903,-18.0007>
    HIT/BASIC,<6.43,0,-18>,<1,0,0>,<6.4135,0.0017,-17.9992>
    HIT/BASIC,<6.0797,-2.0934,-18>,<0.9455186,-0.3255682,0>,<6.0661,-2.089,-18.0017>
    HIT/BASIC,<5.0669,-3.9587,-18>,<0.7880108,-0.6156615,0>,<5.0593,-3.9529,-17.9999>
    ENDMEAS/
    MOVE/POINT,NORMAL,<10,-7,8>
    MOVE/POINT,NORMAL,<-10,-7,8>
    CER10 =FEAT/CONTACT/CIRCLE/DEFAULT,CARTESIAN,OUT,LEAST_SQR
    THEO/<V0,V0,-5>,<V0,V0,1>,12.86,0
    ACTL/<0,0,-5>,<0,0,1>,12.86,0
    TARG/<V0,V0,-5>,<0,0,1>
    START ANG=0+230,END ANG=0+130
    ANGLE VEC=<V0,V0,1>
    DIRECTION=CW
    SHOW FEATURE PARAMETERS=NO
    SHOW CONTACT PARAMETERS=YES
    NUMHITS=5,DEPTH=0,PITCH=0
    SAMPLE METHOD=SAMPLE_HITS
    SAMPLE HITS=0,SPACER=0
    AVOIDANCE MOVE=NO,DISTANCE=10
    FIND HOLE=DISABLED,ONERROR=NO,READ POS=NO
    SHOW HITS=YES
    HIT/BASIC,<-4.3025,-4.7784,-5>,<-0.6691306,-0.7431448,0>,<-4.3025,-4.7784,-5>
    HIT/BASIC,<-5.8741,-2.6153,-5>,<-0.9135455,-0.4067366,0>,<-5.8741,-2.6153,-5>
    HIT/BASIC,<-6.43,0,-5>,<-1,0,0>,<-6.43,0,-5>
    HIT/BASIC,<-5.8741,2.6153,-5>,<-0.9135455,0.4067366,0>,<-5.8741,2.6153,-5>
    HIT/BASIC,<-4.3025,4.7784,-5>,<-0.6691306,0.7431448,0>,<-4.3025,4.7784,-5>
    ENDMEAS/
    CER11 =FEAT/CONTACT/CIRCLE/DEFAULT,CARTESIAN,OUT,LEAST_SQR
    THEO/<V0,V0,-12.5>,<V0,V0,1>,12.86,0
    ACTL/<0,0,-12.5>,<0,0,1>,12.8223,0
    TARG/<V0,V0,-12.5>,<0,0,1>
    START ANG=0+45,END ANG=0+115
    ANGLE VEC=<V0,0+1,0>
    DIRECTION=CCW
    SHOW FEATURE PARAMETERS=NO
    SHOW CONTACT PARAMETERS=YES
    NUMHITS=5,DEPTH=0,PITCH=0
    SAMPLE METHOD=SAMPLE_HITS
    SAMPLE HITS=0,SPACER=0
    AVOIDANCE MOVE=NO,DISTANCE=10
    FIND HOLE=DISABLED,ONERROR=NO,READ POS=NO
    SHOW HITS=YES
    HIT/BASIC,<-4.7026,4.3852,-12.5>,<-0.7313537,0.6819984,0>,<-4.8833,4.9793,-12.3707>
    HIT/BASIC,<-5.7544,2.8691,-12.5>,<-0.8949344,0.4461978,0>,<-5.9313,3.4675,-12.2888>
    HIT/BASIC,<-6.3323,1.1166,-12.5>,<-0.9848078,0.1736482,0>,<-6.5055,1.7185,-12.1912>
    HIT/BASIC,<-6.3887,-0.7279,-12.5>,<-0.9935719,-0.1132032,0>,<-6.557,-0.1211,-12.1076>
    HIT/BASIC,<-5.9188,-2.5124,-12.5>,<-0.9205049,-0.3907311,0>,<-6.0848,-1.8983,-12.0174>
    ENDMEAS/
    CER12 =FEAT/CONTACT/CIRCLE/DEFAULT,CARTESIAN,OUT,LEAST_SQR
    THEO/<V0,V0,-18>,<V0,V0,1>,12.86,0
    ACTL/<-0.1875,0.3366,-17.649>,<0.0018237,0.0512188,0.9986858>,12.8411,0
    TARG/<V0,V0,-18>,<0,0,1>
    START ANG=0+220,END ANG=0+140
    ANGLE VEC=<V0,V0,1>
    DIRECTION=CW
    SHOW FEATURE PARAMETERS=NO
    SHOW CONTACT PARAMETERS=YES
    NUMHITS=5,DEPTH=0,PITCH=0
    SAMPLE METHOD=SAMPLE_HITS
    SAMPLE HITS=0,SPACER=0
    AVOIDANCE MOVE=NO,DISTANCE=10
    FIND HOLE=DISABLED,ONERROR=NO,READ POS=NO
    SHOW HITS=YES
    HIT/BASIC,<-5.0669,-3.9587,-18>,<-0.7880108,-0.6156615,0>,<-5.2411,-3.6184,-17.4386>
    HIT/BASIC,<-6.0797,-2.0934,-18>,<-0.9455186,-0.3255682,0>,<-6.253,-1.7646,-17.533>
    HIT/BASIC,<-6.43,0,-18>,<-1,0,0>,<-6.6082,0.32,-17.6444>
    HIT/BASIC,<-6.0797,2.0934,-18>,<-0.9455186,0.3255682,0>,<-6.2634,2.4101,-17.7432>
    HIT/BASIC,<-5.0669,3.9587,-18>,<-0.7880108,0.6156615,0>,<-5.2594,4.2687,-17.841>
    ENDMEAS/
    MOVE/POINT,NORMAL,<-10,7,8>
    Ø12_86_5 =FEAT/CIRCLE,CARTESIAN,OUT,LEAST_SQR,YES
    THEO/<-0.0298,-0.026,-4.95>,<-0.0004096,-0.0006184,0.9999997>,12.86
    ACTL/<-0.0067,-0.0001,-4.9997>,<0,0,1>,12.8529
    CONSTR/CIRCLE,BF,2D,CER10.HITS[1..CER10.NUMHITS],CER7.HITS[1..CER7.NUMHITS],,
    OUTLIER_REMOVAL/OFF,3
    FILTER/OFF,UPR=0
    Ø12_86_12_5=FEAT/CIRCLE,CARTESIAN,OUT,LEAST_SQR,YES
    THEO/<-0.0298,-0.026,-4.95>,<-0.0004096,-0.0006184,0.9999997>,12.86
    ACTL/<-0.1132,0.2985,-12.3472>,<0,0,1>,13.0627
    CONSTR/CIRCLE,BF,2D,CER11.HITS[1..CER11.NUMHITS],CER8.HITS[1..CER8.NUMHITS],,
    OUTLIER_REMOVAL/OFF,3
    FILTER/OFF,UPR=0
    Ø12_86_18 =FEAT/CIRCLE,CARTESIAN,OUT,LEAST_SQR,YES
    THEO/<-0.0298,-0.026,-4.95>,<-0.0004096,-0.0006184,0.9999997>,12.86
    ACTL/<-0.095,0.1678,-17.8206>,<0,0,1>,13.0068
    CONSTR/CIRCLE,BF,2D,CER12.HITS[1..CER12.NUMHITS],CER9.HITS[1..CER9.NUMHITS],,
    OUTLIER_REMOVAL/OFF,3
    FILTER/OFF,UPR=0
    


    No problem with their circularity and diameter either. The issue comes with the repeatability of the circles that are the furthest away from the probings of my datum A, meaning circle -5 and -12.5
    The -5 one has terrible repeatability in terms of true position with 0.03mm range of measurements. This is not the case with my circle at -18 which is constructed with the same logic and it is basicly the same tool that is creating it in the CNC machine and same probes and everything in CMM.


    What am I missing? Where is the mistake? Could it be the level on a cylinder and how the 2d circle is projected? Does this justify the dispersion? I am not moving the part between the measurements and all other locations / positions / features are consistent.

    DIM LOC_0_05_12_86_HAUT_A= POSITION OF CIRCLE Ø12_86_5 UNITS=MM ,$
    GRAPH=OFF TEXT=OFF MULT=10.00 OUTPUT=BOTH FIT TO DATUMS=OFF DEV PERPEN CENTERLINE=OFF DISPLAY=DIAMETER
    AX NOMINAL +TOL -TOL BONUS MEAS DEV OUTTOL
    X V0 -0.0067 -0.0067
    Y V0 -0.0001 -0.0001
    DF 12.8600 0.0500 0.0500 12.8529 -0.0071 0.0000 #-
    TP RFS 0.0500 0.0000 0.0133 0.0133 0.0000 #-
    END OF DIMENSION LOC_0_05_12_86_HAUT_A
    DIM LOC_0_05_12_86_MILIEU_A= POSITION OF CIRCLE Ø12_86_12_5 UNITS=MM ,$
    GRAPH=OFF TEXT=OFF MULT=10.00 OUTPUT=BOTH FIT TO DATUMS=OFF DEV PERPEN CENTERLINE=OFF DISPLAY=DIAMETER
    AX NOMINAL +TOL -TOL BONUS MEAS DEV OUTTOL
    X V0 -0.1135 -0.1135
    Y V0 0.2984 0.2984
    DF 12.8600 0.0500 0.0500 13.0627 0.2027 0.1527 ->
    TP RFS 0.0500 0.0000 0.6386 0.6386 0.5886 ->
    END OF DIMENSION LOC_0_05_12_86_MILIEU_A
    DIM LOC_0_05_12_86_BAS_A= POSITION OF CIRCLE Ø12_86_18 UNITS=MM ,$
    GRAPH=OFF TEXT=OFF MULT=10.00 OUTPUT=BOTH FIT TO DATUMS=OFF DEV PERPEN CENTERLINE=OFF DISPLAY=DIAMETER
    AX NOMINAL +TOL -TOL BONUS MEAS DEV OUTTOL
    X V0 -0.0951 -0.0951
    Y V0 0.1677 0.1677
    DF 12.8600 0.0500 0.0500 13.0068 0.1468 0.0968 ->
    TP RFS 0.0500 0.0000 0.3856 0.3856 0.3356 ->
    END OF DIMENSION LOC_0_05_12_86_BAS_A
    


    Thanks in advance for your answers and time.


    I would try to add more points to the circles, Right now it was 5 points. I have a feeling, since the 5 points are not on the same plane, and you want to be consistent, therefore derivative should be close to constant, add points might be helpful. I think