hello cnc ladies & gents only for you refference, pls check this code & attached image
Code:
OS** ( soubroutine CALL statement includes the local variable LINK that points to the turret post )
LVRF = VRSTT / 128 ( local variable restart flag )
( NGHOST ) G305 ( step by step : disabled )
IF [ VRSTT NE 0 ] NEND ( code skip during restart sequence : delivers shorter restart time )
IF [ .... ] NEND ( conditional code; handling more parts / pull operation )
M09
CALL OCHK8 LV01=LINK LV02=0 LV03=0 LV04=78.411 LV05=0.5 ( checking main offset )
CALL OCHK4 LV01=VNSRZ[LINK] LV02=0 LV03=1 ( checking radius )
G304 ( step by step : enabled )
IF LDFB NODYN0 (*1)
LVRF = 1 ( executed only at 1st cycle loop, or 1st part )
NODYN0 NOEX
IF [ LVRF EQ 1 ] NODYN1
( NFALSE ) ILK = Z_clamp_position + clearance ( executed only in 'continuum' mode )
NODYN1 CALL ODYNX LPOS = 0 LCTR=3 ( executed in both 'continuum' and 'restart' mode )
G00 Z_clamp_position + clearance X0
G29 PZ=20 G94 ( avoiding hard Z loads, by reducing the default servo admissible torque )
G01 Z_clamp_position F650
M84
G91 Z_travel + VNSRZ [ LINK ] F2200 ( using the 'radius' only to adjust the travel )
M83
G90 Z2.5 F650
G28 ( restore default servo admissible torque )
(*2)
NEND NOEX
RTS ( . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . )
(*1)
( this paragraph contains preparatority codes for the dynamic indexing soubroutine : )
( ... reduced travels to safe position, that deliver low indexing clearances )
( ... ctr codes accordingly to operation type )
( ... dual safe positions, in respect to restart mode, or continuous mode )
(*2)
( without end safe position )
( this does not mean that the turret is not going to a safe position )
( it does the next time when dynamic indexing occurs )