hexagon logo

Constructing a circle from a cone and dimensionning the circularity

I need to dimension the circularity of a circle constructed from a cone, at a given height.
I think that measuring the circle cannot give an accurate result, because of the drift.
So I measured 2 circles around the given height,with the same number of hits and the same direction, and extract the center ball hits in a loop :

ASSIGN/TIP_RAD=PROBEDATA("Diam")/2+PROBEDATA("prbrdv")
PL1 =GENERIC/PLANE,DEPENDENT,CARTESIAN,
$ NOM/XYZ,<0,0,15>,
$ MEAS/XYZ,<0,0,15>,
$NOM/IJK,<0,0,1>,
$ MEAS/IJK,<0,0,15>
ASSIGN/V1=PL1.IJK 
ASSIGN/V2=PL1.XYZ
V10=LOOP/START,ID=YES,NUMBER=CIRC1.NUMHITS,START=1,SKIP=,
ASSIGN/V12=CIRC1.RAWHIT[V10].XYZ
ASSIGN/V13=CIRC2.RAWHIT[V10].XYZ
ASSIGN/V14=CROSS((V12-V13),CROSS((V12-V13),ALIGN_1.ZAXIS))
ASSIGN/V15=V12+V14*TIP_RAD
ASSIGN/V16=V13+V14*TIP_RAD
ASSIGN/V17=UNIT(V15-V16)
ASSIGN/V5=V15-V2
ASSIGN/V6=DOT(V5,V1)
ASSIGN/V7=CROSS(V1,CROSS(V17,V1))
ASSIGN/V8=SIN(DEG2RAD(90-ANGLEBETWEEN(V1,V17)))
ASSIGN/V9=V2+V5-V6*V1-DOT((V6/V8)*V17,V7)*V7
PT1 =GENERIC/POINT,DEPENDENT,CARTESIAN,
$ NOM/XYZ,<V9.X,V9.Y,V9.Z>,
$ MEAS/XYZ,<V9.X,V9.Y,V9.Z>,
$NOM/IJK,<V17.I,V17.J,V17.K>,
$ MEAS/IJK,<V17.I,V17.J,V17.K>
LOOP/END

Then I construct a circle from PT1[1..CIRC1.NUMHITS] and I get a diamter, a center and a circularity. I noticed that the diameter is close to the diameter constructed from a cone (classical method), but the center moves of some µm (same order than the circularity...)

Note :
V12 and V13 are the center ball of each circle hit
V14 is a vector perp to the line between both center ball (V12-V13) and the Z axis so it gives the ball compensation
V15 and V16 are compensated points

I used a little this code :
http://www.pcdmisforum.com/forum/pc-dmis-enterprise-metrology-software/pc-dmis-for-cmms/411816-pierce-point-using-variables
Parents
  • So you are measuring circles above and below your basic (15) Z location, then using this math to extract points with vectors normal to the axis of the cone, to compensate for cosine error with the above assignments and generics? That's flippin' brilliant!

    But why not just measure directly at the 15mm location and output roundness of the resultant data with a plane-cone intersect?
    I would have just made an auto-cone, set spacing so it measure hits right at the set height(15?), then use your generic plane to create a cone->plane intersect circle at the same set height(15?), then output roundness of that circle...

    You might get the same outcome and it will validate your manual process. Personally, I'd be paranoid about getting the math wrong when trying to manually do it.

    If the auto-cone's form measurement is being output, instead of just that cone->plane intersect circle, you can extract the raw cone hits to create the circle. Your vectors will be dead-on accurate, guaranteed, if you did it this way.
Reply
  • So you are measuring circles above and below your basic (15) Z location, then using this math to extract points with vectors normal to the axis of the cone, to compensate for cosine error with the above assignments and generics? That's flippin' brilliant!

    But why not just measure directly at the 15mm location and output roundness of the resultant data with a plane-cone intersect?
    I would have just made an auto-cone, set spacing so it measure hits right at the set height(15?), then use your generic plane to create a cone->plane intersect circle at the same set height(15?), then output roundness of that circle...

    You might get the same outcome and it will validate your manual process. Personally, I'd be paranoid about getting the math wrong when trying to manually do it.

    If the auto-cone's form measurement is being output, instead of just that cone->plane intersect circle, you can extract the raw cone hits to create the circle. Your vectors will be dead-on accurate, guaranteed, if you did it this way.
Children
No Data