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"...