Files
mayo-mill-probasic/subroutines/load_spindle_safety_2.ngc
2026-06-23 09:12:27 +02:00

51 lines
1.5 KiB
Plaintext

(author: Chris P)
(version: 0.3)
(date: 01/28/26)
(load tool in spindle safety macro)
; This is called form the Tool page
; Parameter #3991 is used to track the current tool loaded it in the spindle (persistently)
; Parameters #4001 to #4024 are used to track which tool is in which pocket (persistently)
; Parameter #4000 is not populated just used in the maths to calculate the above numbers
; #<number_of_pockets>: The number of pockets the ATC platter has, This is user set in the INI file via #<_ini[atc]pockets>
o<load_spindle_safety_2> sub
(PRINT, o<load_spindle_safety_2>)
#<load_spindle_tool_number_2> = #1 ; this is the value form the TOOL tab
#<probe_tool_number> = #3014
; Update atc pocket count based on INI settings
o101 if [EXISTS[#<_ini[atc]pockets>]]
#<number_of_pockets> = #<_ini[atc]pockets>
o101 endif
#10 = 0
#11 = 0 ; 1 if tool is already stored in carousel
o110 while [#10 LT #<number_of_pockets>]
#10 = [#10+1]
o111 if [#<load_spindle_tool_number_2> EQ #[4000 + #10]]
#11 = 1
o111 endif
o110 endwhile
o120 if [#11 EQ 1]
(abort, Tool %d#<load_spindle_tool_number> is already stored in carousel, not loading into spindle)
o120 endif
o130 if [#11 EQ 0]
M61 Q#<load_spindle_tool_number_2> G43 H#<load_spindle_tool_number_2>
#3991 = #<load_spindle_tool_number_2>
o130 endif
o140 if [#<load_spindle_tool_number_2> EQ #<probe_tool_number>]
S0 M5
o140 endif
o<program_coolant> call
o<load_spindle_safety_2> endsub
M2 (end program)