hexagon logo

True Position Problems

I was hoping for some help with true position. I am having issues getting this cylinder to read in tolerance, even though its position in the x-y plane seems to be correct. I'm suspicious that there is something wrong with the part, can you find any issues with the program I am using? Thanks in advance. I have attached snippets, including the report and the code.


STARTUP =ALIGNMENT/START,RECALL:USE_PART_SETUP,LIST=YES
ALIGNMENT/END
MODE/MANUAL
MOVESPEED/ 100
SCANSPEED/25
FORMAT/TEXT,OPTIONS, ,HEADINGS,SYMBOLS, ;NOM,TOL,MEAS,DEV,OUTTOL, ,
LOADPROBE/EM1-1BY20
TIP/T3A0B0, SHANKIJK=0, 0, 1, ANGLE=0
PLN1 =FEAT/PLANE,CARTESIAN,TRIANGLE
THEO/<4.928,-0.025,-1.002>,<0,-1,0>
ACTL/<7.115,10.095,-2.239>,<-0.0019295,0.0024645,0.9999951>
MEAS/PLANE,3
MOVE/CLEARPLANE
HIT/BASIC,NORMAL,<0.226,-0.025,-0.245>,<0,-1,0>,<6.312,5.424,-2.229>,USE THEO=YES
HIT/BASIC,NORMAL,<7.283,-0.025,-0.275>,<0,-1,0>,<6.4,12.467,-2.246>,USE THEO=YES
HIT/BASIC,NORMAL,<7.276,-0.025,-2.487>,<0,-1,0>,<8.634,12.394,-2.241>,USE THEO=YES
ENDMEAS/
LIN1 =FEAT/LINE,CARTESIAN,UNBOUNDED
THEO/<-0.1,0.117,-1.43>,<0,1,0>
ACTL/<6.688,5.052,-2.357>,<0.9999382,-0.0111177,0>
MEAS/LINE,2,ZPLUS
MOVE/CLEARPLANE
HIT/BASIC,NORMAL,<-0.1,0.117,-0.511>,<-1,0,0>,<6.688,5.052,-2.382>,USE THEO=YES
HIT/BASIC,NORMAL,<-0.1,0.117,-2.349>,<-1,0,0>,<8.392,5.033,-2.331>,USE THEO=YES
ENDMEAS/
LIN2 =FEAT/LINE,CARTESIAN,UNBOUNDED
THEO/<7.083,0.112,0.19>,<-0.9999973,-0.0023396,0>
ACTL/<5.967,12.392,-2.361>,<-0.011555,-0.9999332,0>
MEAS/LINE,2,ZPLUS
MOVE/CLEARPLANE
HIT/BASIC,NORMAL,<7.083,0.112,0.19>,<0.0023396,-0.9999973,0>,<5.967,12.392,-2.377>,USE THEO=YES
HIT/BASIC,NORMAL,<0.573,0.097,0.19>,<0.0023396,-0.9999973,0>,<5.886,5.435,-2.345>,USE THEO=YES
ENDMEAS/
A1 =ALIGNMENT/START,RECALL:STARTUP,LIST=YES
ALIGNMENT/LEVEL,ZPLUS,PLN1
ALIGNMENT/ROTATE,YMINUS,TO,LIN2,ABOUT,ZPLUS
ALIGNMENT/TRANS,XAXIS,LIN2
ALIGNMENT/TRANS,YAXIS,LIN1
ALIGNMENT/TRANS,ZAXIS,PLN1
ALIGNMENT/END
MODE/DCC
PLN4 =FEAT/PLANE,CARTESIAN,TRIANGLE
THEO/<1.582,4.741,0>,<0,0,1>
ACTL/<1.583,4.742,0>,<0.0001149,-0.0000688,1>
MEAS/PLANE,8
MOVE/CLEARPLANE
HIT/BASIC,NORMAL,<2.752,7.411,0>,<0,0,1>,<2.752,7.411, 0>,USE THEO=YES
HIT/BASIC,NORMAL,<2.649,7.364,0>,<0,0,1>,<2.649,7.364, 0>,USE THEO=YES
HIT/BASIC,NORMAL,<2.376,7.431,0>,<0,0,1>,<2.376,7.431, 0>,USE THEO=YES
HIT/BASIC,NORMAL,<0.382,7.371,0>,<0,0,1>,<0.382,7.371, 0>,USE THEO=YES
HIT/BASIC,NORMAL,<0.751,7.407,0>,<0,0,1>,<0.751,7.407, 0>,USE THEO=YES
HIT/BASIC,NORMAL,<0.744,0.294,0>,<0,0,1>,<0.744,0.294, 0>,USE THEO=YES
HIT/BASIC,NORMAL,<0.409,0.336,0>,<0,0,1>,<0.409,0.336, 0>,USE THEO=YES
HIT/BASIC,NORMAL,<2.597,0.315,0>,<0,0,1>,<2.597,0.315, 0>,USE THEO=YES
ENDMEAS/
PLN2 =FEAT/PLANE,CARTESIAN,TRIANGLE
THEO/<0.02,4.527,-0.097>,<-1,0,0>
ACTL/<0,4.527,-0.097>,<-0.9999998,-0.000006,0.0006617>
MEAS/PLANE,21
MOVE/CLEARPLANE
MOVE/POINT,NORMAL,<-0.056,7.284,0.5>
HIT/BASIC,NORMAL,<0.02,7.402,-0.08>,<-1,0,0>,<0.02,7.402,-0.08>,USE THEO=YES
HIT/BASIC,NORMAL,<0.02,7.184,-0.131>,<-1,0,0>,<0.02,7.184,-0.131>,USE THEO=YES
HIT/BASIC,NORMAL,<0.02,6.941,-0.078>,<-1,0,0>,<0.02,6.941,-0.078>,USE THEO=YES
HIT/BASIC,NORMAL,<0.02,6.664,-0.133>,<-1,0,0>,<0.02,6.664,-0.133>,USE THEO=YES
HIT/BASIC,NORMAL,<0.02,6.425,-0.08>,<-1,0,0>,<0.02,6.425,-0.08>,USE THEO=YES
HIT/BASIC,NORMAL,<0.02,5.884,-0.071>,<-1,0,0>,<0.02,5.884,-0.071>,USE THEO=YES
HIT/BASIC,NORMAL,<0.02,5.665,-0.152>,<-1,0,0>,<0.02,5.665,-0.152>,USE THEO=YES
HIT/BASIC,NORMAL,<0.02,5.476,-0.072>,<-1,0,0>,<0.02,5.476,-0.072>,USE THEO=YES
HIT/BASIC,NORMAL,<0.02,5.283,-0.134>,<-1,0,0>,<0.02,5.283,-0.134>,USE THEO=YES
HIT/BASIC,NORMAL,<0.02,5.067,-0.073>,<-1,0,0>,<0.02,5.067,-0.073>,USE THEO=YES
HIT/BASIC,NORMAL,<0.02,4.885,-0.123>,<-1,0,0>,<0.02,4.885,-0.123>,USE THEO=YES
HIT/BASIC,NORMAL,<0.02,4.737,-0.073>,<-1,0,0>,<0.02,4.737,-0.073>,USE THEO=YES
HIT/BASIC,NORMAL,<0.02,4.44,-0.125>,<-1,0,0>,<0.02,4.44,-0.125>,USE THEO=YES
HIT/BASIC,NORMAL,<0.02,4.146,-0.075>,<-1,0,0>,<0.02,4.146,-0.075>,USE THEO=YES
HIT/BASIC,NORMAL,<0.02,3.8,-0.113>,<-1,0,0>,<0.02,3.8,-0.113>,USE THEO=YES
HIT/BASIC,NORMAL,<0.02,3.269,-0.069>,<-1,0,0>,<0.02,3.269,-0.069>,USE THEO=YES
HIT/BASIC,NORMAL,<0.02,2.711,-0.11>,<-1,0,0>,<0.02,2.711,-0.11>,USE THEO=YES
HIT/BASIC,NORMAL,<0.02,2.156,-0.067>,<-1,0,0>,<0.02,2.156,-0.067>,USE THEO=YES
HIT/BASIC,NORMAL,<0.02,1.596,-0.107>,<-1,0,0>,<0.02,1.596,-0.107>,USE THEO=YES
HIT/BASIC,NORMAL,<0.02,1.049,-0.072>,<-1,0,0>,<0.02,1.049,-0.072>,USE THEO=YES
HIT/BASIC,NORMAL,<0.02,0.288,-0.092>,<-1,0,0>,<0.02,0.288,-0.092>,USE THEO=YES
ENDMEAS/
PLN3 =FEAT/PLANE,CARTESIAN,TRIANGLE
THEO/<1.507,0,-0.109>,<0,-1,0>
ACTL/<1.508,0,-0.109>,<-0.0000194,-0.9999998,0.0005508>
MEAS/PLANE,9
MOVE/CLEARPLANE
MOVE/POINT,NORMAL,<-0.3,-0.3,-0.09>
MOVE/POINT,NORMAL,<0.1,-0.1,-0.087>
HIT/BASIC,NORMAL,<0.217,0,-0.084>,<0,-1,0>,<0.217,0,-0.084>,USE THEO=YES
HIT/BASIC,NORMAL,<0.54,0,-0.162>,<0,-1,0>,<0.54,0,-0.162>,USE THEO=YES
HIT/BASIC,NORMAL,<0.724,0,-0.067>,<0,-1,0>,<0.724,0,-0.067>,USE THEO=YES
HIT/BASIC,NORMAL,<1.026,0,-0.151>,<0,-1,0>,<1.026,0,-0.151>,USE THEO=YES
HIT/BASIC,NORMAL,<1.208,0,-0.067>,<0,-1,0>,<1.208,0,-0.067>,USE THEO=YES
HIT/BASIC,NORMAL,<2.127,0,-0.074>,<0,-1,0>,<2.127,0,-0.074>,USE THEO=YES
HIT/BASIC,NORMAL,<2.3,0,-0.156>,<0,-1,0>,<2.3,0,-0.156>,USE THEO=YES
HIT/BASIC,NORMAL,<2.534,0,-0.078>,<0,-1,0>,<2.534,0,-0.078>,USE THEO=YES
HIT/BASIC,NORMAL,<2.89,0,-0.141>,<0,-1,0>,<2.89,0,-0.141>,USE THEO=YES
ENDMEAS/
A2 =ALIGNMENT/START,RECALL:STARTUP,LIST=YES
ALIGNMENT/LEVEL,ZPLUS,PLN4
ALIGNMENT/TRANS,ZAXIS,PLN4
ALIGNMENT/ROTATE,XMINUS,TO,PLN2,ABOUT,ZPLUS
ALIGNMENT/TRANS,XAXIS,PLN2
ALIGNMENT/TRANS,YAXIS,PLN3
ALIGNMENT/END
DATDEF/A,FEATURES=PLN4,,
DATDEF/B,FEATURES=PLN2,,
DATDEF/C,FEATURES=PLN3,,
CIR1 =FEAT/CONTACT/CIRCLE/DEFAULT,CARTESIAN,OUT,LEAST_SQR
THEO/<0.32,0.5,0.028>,<0,0,1>,0.063,0
ACTL/<0.321,0.5,0.028>,<0,0,1>,0.062,0
TARG/<0.32,0.5,0.028>,<0,0,1>
START ANG=-186,END ANG=174
ANGLE VEC=<0,1,0>
DIRECTION=CCW
SHOW FEATURE PARAMETERS=NO
SHOW CONTACT PARAMETERS=YES
NUMHITS=6,DEPTH=0,PITCH=0
SAMPLE METHOD=SAMPLE_HITS
SAMPLE HITS=0,SPACER=0
AVOIDANCE MOVE=BOTH,DISTANCE=0.394
FIND HOLE=DISABLED,ONERROR=NO,READ POS=NO
SHOW HITS=NO
FCFLOC1 =POSITION : CIR1
FEATCTRLFRAME/SHOWNOMS=NO,SHOWPARAMS=YES,SHOWEXPANDED=YES,
CADGRAPH=OFF,REPORTGRAPH=OFF,TEXT=OFF,MULT=10.00,A RROWDENSITY=100,OUTPUT=BOTH,UNITS=IN,
COMPOSITE=NO,FIT TO DATUMS=YES,DEV PERPEN CENTERLINE=ON,OUTPUT ALIGNMENT=Datum Reference Frame
CUSTOMIZED DRF=NO
STANDARDTYPE=ASME_Y14_5
SIZE TOLERANCES/1,DIAMETER,0.063,0.001,0.003
PRIMARY DIMENSION/POSITION,DIAMETER,0.005,<MC>,A,B,C
SECONDARY DIMENSION/,<tol>,<MC>,<dat>,<dat>,<dat>
NOTE/FCFLOC1
FEATURES/CIR1,,
CLEARP/ZPLUS,0.199,ZPLUS,-0.001,ON
PREHIT/0.05
RETRACT/0.05​

Attached Files
  • You should start with correcting the THEO vectors of the manual alignment features, PLN1, LIN1, and LIN2. Also, enable the Z coordinate of your considered feature in the XactMeasure command so we can see if the error is in Z (although it shouldn't be).

    Your secondary datum feature PLN2 is off 0.02 in X and your considered feature CIR1 is off .001 in X, so they are .021 farther from one another than the nominal definition which would result in a position error of .042. I'm sure if you display more digits the result will match closer to the XactMeasure report. I'm just not sure why the report label shows 0 deviation in X and seemingly incorrect nominal values.

    Try changing the output alignment to CURRENT ALIGNMENT instead of DATUM REFERENCE FRAME.
  • Thanks so much for your feedback Jacob. I tried fixing the THEO vectors first, and this led to me actually bricking the program.
    I started from scratch and the true position is suddenly working perfectly...

    I believe this stemmed from an issue with my alignment. It seems I reversed the direction of one of the manual alignment vectors during measurement, I potentially took the first and second hit in the wrong order. That's my best guess anyways!

    Thanks again for your help.
  • Maybe try with "fit to datums" --> off / "Deviation perp to centerline" ---> off

    On the other hand all datums are planes, still "on" is not a correct choice imo here...