hexagon logo

Weird Concentric circles TP result

Hello all,

I am using a TIGO TP20 setup (PCDMIS 2017 R2) and I am measuring a small cylindrical part (somehow resembling a very short tube). The outer Diameter being 9mm and inner 6 mm. I have it placed vertically on my fixture and trying to true position control the inner circle as to the outer. The problem is that the face I am having the part on Z+ has no rotational datum and as such I only level on the top plane and probing from Z+ the 2 circles. There is no room (part being 4 mm short) for cylinders.

In any case, this is a simple TP callout of 2 circles. The issue is that while without moving the part on the fixture I am getting repeatable results at a few microns in 2 axis resulting in a TP of less than 0.01mm, when I turn the part 180 degs I am getting 0.03 shift in Y axis. Not only that, but rotating the part continuously by 180 Degs, I am getting consistent repeatable results over and over with the same offset...

The circle even being small I am probing as least squares, 360degs full circles and 23 and 17 hits accordingly in order to have a better approach.

Nevertheless, the distance between the 2 circles should always be the same no matter the orientation / rotation which is left unconstrained (actually was constrained externally with a plane of the fixture). The call out is only requesting TP from Datum A (outer dia).

Maybe it is the leveling plane curling (flatness was 0.015-0.020 mm) due to the fixture grip (not really stressing it much tbh), but still... why have consistency between placements?

For me, this is the first time seeing this happening and I am thinking it has to do with the rotation that's left "unconstrained" and this should not be happening imo. Any ideas maybe?
  • There's a lot going on here.
    I would look into a few fundamental thoughts before red-tagging it, especially if it's a sample set of a larger lot or batch.
    1: Can you affirm the OOS condition using another means? I know 0.0008" / 0.020mm is too tight to determine with a caliper, but i'm sure if you throw it on a surface plate with a v-block and indicate the ID while spinning the part, you'd be able to affirm concentricity to the OD with ease.
    Note: if both cylinders are tri-lobed this could potentially be invisible in a v-block, so look at your form error plots of the circles for patterns/lobing.

    2: ​How is it manufactured?
    3: What kind of screwup during manufacture, could have caused this condition?
    4: How could it have been manufactured and brought to you as presumably acceptable?

    Another possible contributor is your probe itself. Since it's such a small diameter, I'm guessing you are using a smaller probe? 1mm? the Probe diameter-to-shank clearance for a 1mm probe is miniscule (the 1mm probe with TC shank gives you just 0.010" between the shank and the edge of the sphere, when it's made perfectly) and something like a glob of glue at the sphere, or a slightly bent tip, no matter the calibration results of that probe can interact when you start probing at a depth into the part.

    If you don't assign a rotational datum, the demon simply refers to the rotation as being square to the machine's volume, about your local level plane. The floating tetrahedron animation in the graphic view is a tool to make sure you clearly isolate all 6DOF to the part's constraints. If there's no rotational datum on the print, technically, you don't need to establish one in the alignment, unless you are trying to lock down a possible issue with the part or method.


    Thanks for the answer!

    1. Well the offset seems to be around 10 microns which is difficult to measure with any other mean. Even if I place it manually on a v block as you proposed 10 microns are out of limit for any other equipment unfortunately :S

    2. No idea truly. These are prototypes and fabricated a while ago and given to me to test my program. Who made them and how it requires a lot of digging and I am not good at that (mainly because I am working in a French speaking factory and my French are not that great :P )

    3-4. Not really difficult for such a small part to have deformation I guess. They are supposed to use high end lathes and have experience on these kind of parts... Who knows :?

    I used 1mm initially because that's what logic dictates. I later used a 2mm one that seems to be performing just fine (similar results). There is definitely no shanking happening.
    Finally, the strategy we follow programing parts here is creating an external alignment on the fixture that we recall on the main program and re calibrating ofc on the part DCC. When we recall the external alignment all the 6 dof are constrained and the tetrahedron is by no means floating when creating new alignments. To the best of my knowledge, after my leveling and 3 translations, the rotation is maintained based on the fixture external alignment (considering that the leveling is not the same vector as the rotation).

    I agree with you, no need to lock rotation in a circular part that has no rotational element. I need to measure only 2 dias (outer, inner) and the position of one to another. For me, after loosing all hope yesterday, I accepted that 10 microns of distance offset is possible in a slightly bended part (I had flatness and circularity around 10-20 microns). The issue is with TP callouts this offset translates to 2x the radial distance result meaning 10 microns TP and 30 micros TP. The operators gonna ask me... well what is it then? 10 or 30? Difficult to explain that to them :P

  • I agree with you, no need to lock rotation in a circular part that has no rotational element. I need to measure only 2 dias (outer, inner) and the position of one to another.


    I just purposed to lock the rotation trying to explain the defects. If you re-measure all the features after rotation, does it change anything ? (particulary if you level on the top plane after rotation - just to check, I understand you cannot do it on a lot of parts !!!!!)
    I think you should post the code (even if it's in french Wink), or a picture of the fixturing
    (considering that the leveling is not the same vector as the rotation).



  • I just purposed to lock the rotation trying to explain the defects. If you re-measure all the features after rotation, does it change anything ? (particulary if you level on the top plane after rotation - just to check, I understand you cannot do it on a lot of parts !!!!!)
    I think you should post the code (even if it's in french Wink), or a picture of the fixturing


    oh no I was not referring to your proposal. It was actually a good idea to test (that I did indeed try) but changed nothing (not to our surprise I suppose, but you never know...). The fixture is just a v shaped vice that is griping the part at the lower 2mm out of the 4mm which is the part. I am probing the upper half of the part the remaining 2 mm! I have it stressed a little as possible, barely but (sufficiently enough) touching it indeed. When I place the part the only thing that is changing is the form error of the inner circle (goes from around 10 microns to 18 microns) and the TP of the inner circle.

    LOADPROBE/PROBE1
    TIP/T1A0B0, SHANKIJK=0, 0, 1, ANGLE=0
    RECALL/ALIGNMENT,EXTERNAL,APS-PDEA-103722425_A
    MODE/DCC
    PREHIT/1.5
    RETRACT/1.5
    CLEARP/ZPLUS,200,ZPLUS,0,OFF
    MOVE/CLEARPLANE
    MOVE/POINT,NORMAL,<0,0,200>
    CER1 =FEAT/CONTACT/CIRCLE/DEFAULT,CARTESIAN,IN,LEAST_SQR
    THEO/<0,0,-2>,<0,0,1>,5.55
    ACTL/<-0.6152,-0.271,-2>,<0,0,1>,5.5548
    TARG/<0,0,-2>,<0,0,1>
    START ANG=0,END ANG=360
    ANGLE VEC=<0,-1,0>
    DIRECTION=CW
    SHOW FEATURE PARAMETERS=NO
    SHOW CONTACT PARAMETERS=NO
    CLEARP/ZPLUS,5,ZPLUS,0,ON
    A1 =ALIGNMENT/START,RECALL:APS-PDEA-103722425_A,LIST=YES
    ALIGNMENT/TRANS,XAXIS,CER1
    ALIGNMENT/TRANS,YAXIS,CER1
    ALIGNMENT/END
    MOVE/CLEARPLANE
    CER2 =FEAT/CONTACT/CIRCLE/DEFAULT,CARTESIAN,OUT,LEAST_SQR
    THEO/<0,0,-0.5>,<0,0,1>,8.99,0
    ACTL/<-0.0008,0.0641,-0.5>,<0,0,1>,8.9976,0
    TARG/<0,0,-0.5>,<0,0,1>
    START ANG=180,END ANG=540
    ANGLE VEC=<0,-1,0>
    DIRECTION=CW
    SHOW FEATURE PARAMETERS=YES
    VOID DETECTION=NO
    REMEASURE=NO
    SURFACE=THICKNESS_NONE,0
    MEASURE MODE=NOMINALS
    RMEAS=NONE,NONE,NONE
    CIRCULAR MOVES=CIRCULAR
    GRAPHICAL ANALYSIS=NO
    FEATURE LOCATOR=NO,NO,""
    SHOW CONTACT PARAMETERS=YES
    NUMHITS=7,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=NO
    ASSIGN/V1=CER2.R-0.20
    MOVE/CLEARPLANE
    PNT1 =FEAT/CONTACT/VECTOR POINT/DEFAULT,POLAR
    THEO/<V1,90,0>,<0,0,1>
    ACTL/<4.2989,89.9965,0.3247>,<0,0,1>
    TARG/<V1,90,0>,<0,0,1>
    SNAP=NO
    SHOW FEATURE PARAMETERS=YES
    SURFACE=THICKNESS_NONE,0
    MEASURE MODE=NOMINALS
    RMEAS=NONE,NONE,NONE
    GRAPHICAL ANALYSIS=NO
    FEATURE LOCATOR=NO,NO,""
    SHOW CONTACT PARAMETERS=YES
    AVOIDANCE MOVE=NO,DISTANCE=10
    SHOW HITS=NO
    A4 =ALIGNMENT/START,RECALL:A1,LIST=YES
    ALIGNMENT/TRANS,ZAXIS,PNT1
    ALIGNMENT/END
    PLN1 =FEAT/CONTACT/PLANE/DEFAULT,CARTESIAN,TRIANGLE,LEAST_SQR
    THEO/<0,0,0>,<0,0,1>
    ACTL/<-0.0004,-0.019,0.1625>,<-0.0037827,0.0390827,0.9992288>
    TARG/<0,0,0>,<0,0,1>
    ANGLE VEC=<0,-1,0>,RADIAL
    SHOW FEATURE PARAMETERS=NO
    SHOW CONTACT PARAMETERS=YES
    NUMHITS=7,NUMROWS=1
    SPACER=V1
    AVOIDANCE MOVE=NO,DISTANCE=2
    SHOW HITS=NO
    DIM PLAT1= FLATNESS OF PLANE PLN1 UNITS=MM ,$
    GRAPH=OFF TEXT=OFF MULT=100.00 ARROWDENSITY=100 OUTPUT=BOTH
    AX NOMINAL +TOL -TOL MEAS DEV OUTTOL
    M 0.0000 0.0150 0.0000 0.0195 0.0195 0.0045 >
    A2 =ALIGNMENT/START,RECALL:A1,LIST=YES
    ALIGNMENT/LEVEL,ZPLUS,PLN1
    ALIGNMENT/TRANS,XAXIS,CER2
    ALIGNMENT/TRANS,YAXIS,CER2
    ALIGNMENT/TRANS,ZAXIS,PLN1
    ALIGNMENT/END
    MOVE/CLEARPLANE
    CER8_99 =FEAT/CONTACT/CIRCLE/DEFAULT,CARTESIAN,OUT,LEAST_SQR
    THEO/<0,0,-0.5>,<0,0,1>,8.99,0
    ACTL/<-0.0003,-0.0014,-0.5>,<0,0,1>,8.9912,0
    TARG/<0,0,-0.5>,<0,0,1>
    START ANG=-90,END ANG=270
    ANGLE VEC=<0,-1,0>
    DIRECTION=CW
    SHOW FEATURE PARAMETERS=NO
    SHOW CONTACT PARAMETERS=YES
    NUMHITS=23,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=NO
    A3 =ALIGNMENT/START,RECALL:A2,LIST=YES
    ALIGNMENT/TRANS,XAXIS,CER8_99
    ALIGNMENT/TRANS,YAXIS,CER8_99
    ALIGNMENT/END
    MOVE/CLEARPLANE
    CER5_55MI =FEAT/CONTACT/CIRCLE/DEFAULT,CARTESIAN,IN,MAX_INSC
    THEO/<0,0,-3>,<0,0,1>,5.55
    ACTL/<-0.0056,0.0004,-3>,<0,0,1>,5.544
    TARG/<0,0,-3>,<0,0,1>
    START ANG=0,END ANG=360
    ANGLE VEC=<0,-1,0>
    DIRECTION=CW
    SHOW FEATURE PARAMETERS=NO
    SHOW CONTACT PARAMETERS=YES
    NUMHITS=17,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=NO
    SCN1 =FEAT/SET,CARTESIAN
    THEO/<0,0,-3>,<0,0,1>
    ACTL/<-0.0024,0.0008,-2.9992>,<0,0,1>
    CONSTR/SET,BASIC,CER5_55MI.HIT[1..CER5_55MI.NUMHITS],,
    CER5_55LS =FEAT/CIRCLE,CARTESIAN,IN,LEAST_SQR,NO
    THEO/<0,0,-3>,<0,0,1>,5.55
    ACTL/<-0.005,0.0017,-2.9992>,<0,0,1>,5.5525
    CONSTR/CIRCLE,BF,2D,SCN1,,
    OUTLIER_REMOVAL/OFF,3
    FILTER/OFF,UPR=0
    MOVE/CLEARPLANE



    and

    DIM LOC1= LOCATION OF CIRCLE CER8_99 UNITS=MM ,$
    GRAPH=OFF TEXT=OFF MULT=10.00 OUTPUT=BOTH HALF ANGLE=NO
    AX NOMINAL +TOL -TOL MEAS DEV OUTTOL
    D 8.9900 0.0150 -0.0150 8.9912 0.0012 0.0000 #
    RN 0.0000 0.0300 0.0000 0.0044 0.0044 0.0000 #
    END OF DIMENSION LOC1
    DIM LOC2= LOCATION OF CIRCLE CER5_55MI UNITS=MM ,$
    GRAPH=OFF TEXT=OFF MULT=10.00 OUTPUT=BOTH HALF ANGLE=NO
    AX NOMINAL +TOL -TOL MEAS DEV OUTTOL
    D 5.5500 0.0500 -0.0500 5.5440 -0.0060 0.0000 #
    RN 0.0000 0.1000 0.0000 0.0111 0.0111 0.0000 #
    END OF DIMENSION LOC2
    DIM LOC3= POSITION OF CIRCLE CER5_55LS 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 0.0000 -0.0050 -0.0050
    Y 0.0000 0.0017 0.0017
    TP RFS 0.1000 0.0000 0.0106 0.0106 0.0000 #
    END OF DIMENSION LOC3​




  • This is actually the very first code that got more complicated with my testings later on :P The number of point increased, added cylinders etc.
  • Are you clamping the part? Or how do you secure it in the V-block? Glue?
  • Are you clamping the part? Or how do you secure it in the V-block? Glue?




    It's a vice with a removable support (the aluminum marked part) that has a flat fixed surface and a V shaped adjusted surface. I am fixing it with a controlled torque key.

    Attached Files
  • Just a question : why do you use start angle once at 0, once at 180 and once at -90, always with angle at Yminus ?
  • Are you sure that there are the planes of the V which touch the part, or there are the edges ?
    What torque value do you use ? (the screw seems to be very large...)
  • The result is the same no matter what is touching the part. The part is "centered" and there is contact in 3 points (or lines if not seen from z+). There is no serious searing stress even if it's maintained on the corners as I use only 12cNm of torque. Barely touching the part manual micro adjustment of the vice, give the same results.
  • Just a question : why do you use start angle once at 0, once at 180 and once at -90, always with angle at Yminus ?


    Well to save time. Imagine (as an example not really the actual case) the probe finishes inspection of the IC at X- and if I leave starting angle 0 to end angle 360, the probe will start probing the OC from the X+. Adjusting the starting angle but still ensuring the full 360 degs probing saves some time as the probe will jump to start the inspection at X- instead of travelling the whole part. In this small part is redundant I know but production is waiting in lines some times complaining :P

    Keep in mind that the code has been changed a few times during my 2 days of testing even the code that I shared might have a few points before or after missing/removed. At some point I stopped caring about saving time and for testing purposes the angles were left unoptimized. It will be corrected at the final program when I resolve the issue. I hope this answers your question.