hexagon logo

Measure a rubber band or O-ring

My name is Lars Engstrup and from Denmark.

I have a task where I need to measure a diameter on a thin part made of rubber (like a rubber band or O-ring).

But when the part is made of rubber and deformed (not round) will calculation of the diameter not be possible by using the normal circle calculation program in PC-DMIS. But I need a method to calculate the circumference/length of the surface/contour on the diameter.

The diameter will be measured with optical scan at a Mycrona CMM.

What opportunities are there in PC-DMIS CAD + + (version 4.2) to calculating the circumference / length of the contour of a curve.
  • I am not sure about 4.2 (I use 3.7).
    The ASME 14.5M standard notes something about Average Diameter (paragraph 6.8.3).
    This allows an average to be calculated from several measurements.
  • Try this, Dia X Pi=Circumference
    COMMENT/OPER,NO,INSERT DIA
    DIM DIA= KEYED IN DIMENSION  OUTPUT=BOTH
    AX    NOMINAL       +TOL       -TOL       MEAS        DEV     OUTTOL
    M     100.000      0.100      0.100    100.050      0.050      0.000 ------#--
                ASSIGN/V1 = DIA.M.MEAS*3.1416
    CIRCUM     =GENERIC/CIRCLE,DEPENDENT,RECT,OUT,$
                NOM/XYZ,314.16,0,0,$
                MEAS/XYZ,V1,0,0,$
                NOM/IJK,0,0,1,$
                MEAS/IJK,0,0,1,$
                RADIUS/0,0
    DIM D2= LOCATION OF CIRCLE CIRCUM  UNITS=MM ,$
    GRAPH=OFF  TEXT=OFF  MULT=10.00  OUTPUT=BOTH
    AX    NOMINAL       +TOL       -TOL       MEAS        DEV     OUTTOL
    X     314.160      0.100      0.100    314.317      0.157      0.057 -------->
    END OF DIMENSION D2
  • I suppose you could do closed scan with a .002 increment (make you turn the touch speed waaaay down if it's a really light part, that way you don't deform it). After the scan has been completed, select "To Points" and then report the distance between each adjacent point. Add up all of those distances and that will give you cirumference. I suppose it depends on what your tolerance is, but, this will give you a fairly accurate way to calculate the circumference. And from there, just calculate the Ø
  • Can you scan the diameter. If so, use a very small increment and then create a math function that takes all the points and finds the line segment lengths between each scan point then find the total circumference and divide by PI.

    EDIT: I guess I dont type fast enough...
  • Some things just shouldn't be done on a CMM.....
  • yes, Craiger is right,,
    there is a check tool you can buy specific for o- rings. Do research.
    or you can do it with vision equipment. opg or ram
  • isn't there a vision section for this in the forum..
  • measuring o-ring

    Good Morning Lars;

    Do you have access to a mandrel? If so, and you do not need to know the inside Ø of the o-ring, you can place it on a mandrel to measure the outside. Be very careful so you do not cause it to stretch.

    Doug Wells
  • Circumference

    Here is some code that I use to measure the circumference of some out of round parts.
    If you can create a scan with a high density of points, then take the points of the scan and calculate the distance between the points ( circumference in this case )


    SCN1       =BASICSCAN/CIRCLE,SHOW HITS=NO,SHOWALLPARAMS=YES
                <0,0,0>,CutVec=0,0,1,IN
                InitVec=-1,0,0,DIAM=D1,ANG=0,ANG=360,DEPTH=0,THICKNESS=0,PROBECOMP=YES,AVOIDANCE MOVE=NO,DISTANCE=0
                FILTER/NULLFILTER,
                EXEC MODE=FEATURE,USEHSSDAT=YES,USEDELAYPNTS=NO
                BOUNDARY/
                HITTYPE/VECTOR
                NOMS MODE=MASTER
                ENDSCAN
    $$ NO,+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
                ASSIGN/NUM_SCN_HITS=SCN1.NUMHITS
                ASSIGN/COUNT=1
                ASSIGN/CIRCUM=0
                ASSIGN/COOR=0
                WHILE/COUNT<NUM_SCN_HITS
                ASSIGN/CORDX=(SCN1.HIT[COUNT].X-SCN1.HIT[COUNT+1].X)^2
                ASSIGN/CORDY=(SCN1.HIT[COUNT].Y-SCN1.HIT[COUNT+1].Y)^2
                ASSIGN/COOR=COOR+SQRT(CORDX+CORDY)
                ASSIGN/COUNT=COUNT+1
                END_WHILE/
                IF/COUNT==NUM_SCN_HITS
                ASSIGN/CORDX=(SCN1.HIT[COUNT].X-SCN1.HIT[1].X)^2
                ASSIGN/CORDY=(SCN1.HIT[COUNT].Y-SCN1.HIT[1].Y)^2
                ASSIGN/COOR=COOR+SQRT(CORDX+CORDY)
                ASSIGN/COUNT=COUNT+1
                END_IF/
    $$ NO,+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
                ASSIGN/D2=COOR/3.14159265358
                COMMENT/OPER,NO,"DIAMETER is " + D2


    This is not the most accurate way of calculating the diameter, but I use it for now. The denser the scan points that you have, the better the measurement.
    I use a SP25 with a density of 20 and it takes PCDMIS a while to go through the loop after the scan.

    It would be better to have this as VB script, maybe with some of the gurus help it can be turned into a decent subroutine.
    If anyone has suggestions or help, please let me know. This is one of projects I haven't had much time to work on.

    HTH