o sub ;Orient spindle ;toolchange Main toolchange macro ;M10 Rotate to correct pocket, home if not homed ;M11 Jog one pocket FWD ;M12 Jog one pocket REV ;M13 Home carousel ;M21 Move tool from ATC to spindle (Orient, activate PDB, Lower head, Dectivate PDB, retract ATC, raise head) ;M22 Move tool from spindle to ATC (Orient, lower head, extend ATC, activate PDB, raise head) ;M23 Orient spindle (After carousel is homed) ;M24 Activate PDB ;M25 Extend ATC (Open door, extend ATC) ;M26 Retract ATC (Retract ATC, close door) ;M27 Home spindle (Only during initial carousel homing) ;M28 Reset carousel homed parameter #5171 to 0 ;load_spindle_safety Set tool in spindle ;store_tool_in_carousel Remove tool from spindle, store in ATC ;pocket request motion.analog-out-00 ;carousel enable motion.digital-out-00 ;extend solenoid motion.digital-out-01 ;retract solenoid motion.digital-out-02 ;drawbar solenoid motion.digital-out-03 ;spindle lock solenoid motion.digital-out-04 ;carousel JOG FWD motion.digital-out-05 ;carousel JOG REV motion.digital-out-06 ;spindle index trigger motion.digital-out-07 ;ATC door motion.digital-out-08 ;carousel-ready motion.digital-in-00 ;extend proxy motion.digital-in-01 ;retract proxy motion.digital-in-02 ;drawbar up proxy motion.digital-in-03 (up is HIGH) ;spindle-enable motion.digital-in-04 ;spindle oriented motion.digital-in-05 ;spindle lock proxy motion.digital-in-06 ;carousel-homed motion.digital-in-07 ;carousel-active motion.digital-in-08 ;ATC door proxy motion.digital-in-09 ; Parameter #5170 is used to track the current tool pocket (persistently) ; Parameter #

is passed through using remap argspec and comes from toolchange.ngc O180 & O200 ; Parameter # is used to calculate shortest-path direction and number of steps for ATC widget ; Parameter # pulls number of ATC pockets from INI file for shortest-path calc ;***abbreviated orient sequence*** M64 P4 ; Extend spindle lock G4 P0.5 ; Wait for lock extend M19 R0 Q2 ; Orient spindle G4 P0.5 M66 P5 L3 Q3 ; Check spindle oriented O100 IF [#5399 LT 0] (abort, spindle not oriented) O100 ENDIF ;M65 P4 ; Retract spindle lock o endsub [1] M2