hexagon logo

A little prog to create an "autocalibration" of a rotary

I wrote this prog to calibrate the rotary, without using the rotary calibration window, so it can be used as an "autocalibration".
It uses 2 spheres, the "sph_rotary_disable" is fixed on the rotary, but sphere fixed on a rotary" isn't selected.
The origin of thermal compensation is fixed at the previous location of the rotary, IGNOREROTAB is ON.
Temp comp is setted on axes only.
By this way, the thermal expansion of the granit has a very few effect on the rotary center.

IGNOREROTAB/ON
            LOADPROBE/LSPX1_L50_D5
            TIP/T1A0B0, SHANKIJK=0, 0, 1, ANGLE=0
            ASSIGN/V7=GETROTABDATA("center")
            TEMPCOMP/ORIGIN=V7.X,V7.Y,V7.Z,CTE=0.0000115,Reference Temp=20
              ,Hi Threshold=40,Lo Threshold=10
              ,PART SENSOR NUM=9
              ,X AXIS TEMP=20.3561,Y AXIS TEMP=20.7799,Z AXIS TEMP=20.4879,PART TEMP=20.7451
            MOVE/ROTAB,0,SHORTEST,
            AUTOCALIBRATE/PROBE, PARAMETER_SET=A0B0, QUALTOOL_MOVED=NO,
                          SHOW_SUMMARY=NO, OVERWRITE_RESULTSFILE=NO
            AUTOCALIBRATE/PROBE, PARAMETER_SET=A0B0_sph_rotary_disable, QUALTOOL_MOVED=YES_DCC,
                          SHOW_SUMMARY=NO, OVERWRITE_RESULTSFILE=NO
            ASSIGN/V1=QUALTOOLDATA("xyz","sph_rotary_disable")-V7
C1         =COMMENT/INPUT,NO,FULL SCREEN=NO,
            Enter the number of positions
            ASSIGN/V8=360/(C1.INPUT)
REF1       =ALIGNMENT/START,RECALL:STARTUP,LIST=YES
              ALIGNMENT/TRANS_OFFSET,XAXIS,V7.X
              ALIGNMENT/TRANS_OFFSET,YAXIS,V7.Y
              ALIGNMENT/TRANS_OFFSET,ZAXIS,V7.Z
            ALIGNMENT/END
            MODE/DCC
            MOVE/POINT,NORMAL,<V1.X,V1.Y,V1.Z+200>
            CLEARP/ZPLUS,200,ZPLUS,0,ON
            ASSIGN/V3=SQRT(DOT(V1.XYZ,V1.XYZ))
            ASSIGN/ANG_R=RAD2DEG(ATAN(V1.Y/V1.X))
            IF/V1.X<0
              ASSIGN/ANG_R=180+ANG_R
            END_IF/
            ASSIGN/V6=0
            MOVE/ROTAB,0,SHORTEST,
V2         =LOOP/START,ID=YES,NUMBER=C1.INPUT,START=1,SKIP=,
              OFFSET:XAXIS=0,YAXIS=0,ZAXIS=0,ANGLE=0
              MOVE/CLEARPLANE
              ASSIGN/V4=COS(DEG2RAD(ANG_R))
              ASSIGN/V5=SIN(DEG2RAD(ANG_R))
SPH1         =FEAT/CONTACT/SPHERE/DEFAULT,CARTESIAN,OUT,LEAST_SQR
              THEO/<V3*V4,V3*V5,V1.Z>,<0,0,1>,20.0001
              ACTL/<-169.2387,43.7966,0.0122>,<0,0,1>,20.0002
              TARG/<V3*V4,V3*V5,V1.Z>,<0,0,1>
              START ANGLE 1=0,END ANG 1=360
              START ANGLE 2=0,END ANG 2=90
              ANGLE VEC=<1,0,0>
              SHOW FEATURE PARAMETERS=NO
              SHOW CONTACT PARAMETERS=NO
              ASSIGN/ANG_R=ANG_R+V8
              ASSIGN/V6=V6+V8
              MOVE/CLEARPLANE
              MOVE/ROTAB,V6,SHORTEST,
            LOOP/END
SCN1       =FEAT/SET,CARTESIAN
            THEO/<0,0,0.0047>,<0,0,1>
            ACTL/<0.0015,-0.0083,0.0028>,<0,0,1>
            CONSTR/SET,BASIC,SPH1[1..C1.INPUT],,
PL1        =FEAT/PLANE,CARTESIAN,TRIANGLE,NO
            THEO/<0,0,0.0047>,<0,0,1>
            ACTL/<0.0015,-0.0083,0.0028>,<0.0000261,-0.0000881,1>
            CONSTR/PLANE,BF,SCN1,,
            OUTLIER_REMOVAL/OFF,3
            FILTER/OFF,WAVELENGTH=0
CE1        =FEAT/CIRCLE,CARTESIAN,OUT,LEAST_SQR,NO
            THEO/<0,0,0.0047>,<0,0,1>,349.6367
            ACTL/<0.0018,-0.0085,0.0028>,<0.0000261,-0.0000881,1>,349.6343
            CONSTR/CIRCLE,BF,3D,SCN1,,
            OUTLIER_REMOVAL/OFF,3
            FILTER/OFF,UPR=0
            CALIBRATEROTAB/PLANE=PL1, CIRCLE=CE1,
            MEAS/XYZ=<490.0105,1690.0224,-797.695>, MEAS/IJK=<0.0000261,-0.0000881,1>



If you wonder why it's necessary to often calibrate the rotary, just imagine that the center "moves" after each homing, or after each time when you answer "Yes, the sphere moved"...
Parents



  • I don't have thermal compensation (I don't think? I have 2013MR1 and was under the impression that was introduced in a later version).
    Do you believe this will make a difference?



    I don't think that tempcomp is linked to a version, but to a cmm.
    And the temp comp is less important on a "little" cmm than on a large one.
    If the rotary is far from zero, the dilated length is important, so the expansion of the granite gives a kind of displacement of the rotary axis.
    The compensation calculates it to reduce the defect.

    I don't know about an Optiv thermal compensation, maybe some guys here could answer ?
Reply



  • I don't have thermal compensation (I don't think? I have 2013MR1 and was under the impression that was introduced in a later version).
    Do you believe this will make a difference?



    I don't think that tempcomp is linked to a version, but to a cmm.
    And the temp comp is less important on a "little" cmm than on a large one.
    If the rotary is far from zero, the dilated length is important, so the expansion of the granite gives a kind of displacement of the rotary axis.
    The compensation calculates it to reduce the defect.

    I don't know about an Optiv thermal compensation, maybe some guys here could answer ?
Children
No Data