o sub ; Move Carousel to the tool change position - OUT ; then unload any tool in the spindle into the current pocket ; Parameter #3991 is used to track the current tool loaded it in the spindle (persistently) ; # is the height you spindle needs to be at to clamp/unclamp a tool form the ATC (Set via INI [ATC]Z_TOOL_CHANGE_HEIGHT) ; # is the clearance height you spindle needs to be at to safely clear the ATC (Set via INI [ATC]Z_TOOL_CLEARANCE_HEIGHT) (PRINT, o) # = -3.9000 o100 if [EXISTS[#<_ini[atc]z_tool_change_height>]] # = #<_ini[atc]z_tool_change_height> o100 endif # = [#<_ini[AXIS_Z]MAX_LIMIT>-0.01] o110 if [EXISTS[#<_ini[atc]z_tool_clearance_height>]] # = #<_ini[atc]z_tool_clearance_height> o110 endif M65 P1 ; switch off carousel in solenoid M66 P1 L3 Q1 M5 M9 G90 G0 G53 Z# ; rapid move to above the tool change height ;M19 R0 Q3 ; orient spindle M64 P0 ; Move Carousel out M66 P1 L3 Q5 ; check for carousel out sensor o120 if [#5399 LT 0] M65 P0 ; switch off atc out solenoid (abort, ATC not in position) o120 endif M24 ; activate drawbar, release the tool M5 ; turn off spindle lock G0 G53 Z# ; move z to clear height #3991 = 0; save fact there is now no tool in the spindle (PRINT, o endsub) o endsub [1] M2