hexagon logo

How to output the radial dimensions from circle scan

Hi, I am trying to output the radial  and angular dimension from a circle scan.

so if a point on the scan was out of tolerance, I want to know approx. where it would be.

the circle would have approx. 1200 points for the scan.

Thanks

  • First, the radius of each point of the scan depends on the algo used to construct the circle (the center of the circle is different between different constructions).

    The radius of a point is the distance between the point and the center so you have to construct a circle (CIR1) from the scan (SCN1) :

    ASSIGN/V1=SQRT(DOT(SCN1.HIT[1..SCN1.NUMHITS].XYZ-CIR1.XYZ,SCN1.HIT[1..SCN1.NUMHITS].XYZ-CIR1.XYZ))

    If the tolerance on the radius is ±T1, then :

    ASSIGN/TOL_PLUS=CIR1.TR+T1

    ASSIGN/TOL_MINUS=CIR1.TR-T1

    ASSIGN/POINTS_PLUS=MAXINDICES((V1-TOL_PLUS)-ABS(V1-TOL_PLUS))...........................points OOT+

    ASSIGN/V2=SUM(((V1-TOL_PLUS)-ABS(V1-TOL_PLUS))/((V1-TOL_PLUS)-ABS(V1-TOL_PLUS)))........number of points OOT+

    ASSIGN/POINTS_MINUS=MAXINDICES((TOL_MINUS-V1)-ABS(TOL_MINUS-V1))...........................points OOT-

    ASSIGN/V3=SUM((TOL_MINUS-V1)-ABS(TOL_MINUS-V1))/((TOL_MINUS-V1)-ABS(TOL_MINUS-V1)))........number of points OOT-

    Then , you can create 2 loops V4 and V5 to create generic points from SCN1.HIT[POINT_PLUS[V4]].XYZ and SCN1.HIT[POINT_MINUS[V5]].XYZ, hopping there's not too much OOT hits...