#!/usr/bin/tclsh package require Linuxcnc ;# must be before Hal emc_init -quick package require Hal parse_ini $::env(INI_FILE_NAME) # Check if correct kinematic is active if {[hal getp kinstype.is-1] == "FALSE"} { puts "kinematic does not match! Are you calling M101 instead of M301?" exit 1 } # SET INI AXIS LIMITS hal setp ini.x.min_limit [set ::AXIS_X(MIN_LIMIT_X_SWITCHKINS)] hal setp ini.x.max_limit [set ::AXIS_X(MAX_LIMIT_X_SWITCHKINS)] hal setp ini.x.max_velocity [set ::AXIS_X(MAX_VELOCITY_X_SWITCHKINS)] hal setp ini.x.max_acceleration [set ::AXIS_X(MAX_ACCELERATION_X_SWITCHKINS)] hal setp ini.v.min_limit [set ::AXIS_V(MIN_LIMIT_V_SWITCHKINS)] hal setp ini.v.max_limit [set ::AXIS_V(MAX_LIMIT_V_SWITCHKINS)] hal setp ini.v.max_velocity [set ::AXIS_V(MAX_VELOCITY_V_SWITCHKINS)] hal setp ini.v.max_acceleration [set ::AXIS_V(MAX_ACCELERATION_V_SWITCHKINS)] hal setp ini.0.max_velocity [set ::AXIS_V(MAX_VELOCITY_V_SWITCHKINS)] # SUBROUTINE FOR LATHE WITH SEPARATE PART-OFF SLIDE. SWITCHES V-AXIS PARTING SLIDE WITH X-AXIS. # WHEN SWITCH IS ACTIVE, PART-OFF SLIDE PROGRAMMING IS DONE WITH X-AXIS. # SWITCH REQUIRED BECAUSE G96 CSS IS HARD-CODED ONLY TO X-AXIS IN LCNC AS OF 2.9 # PARTING TOOL LENGTH ADJUSTMENTS ARE MADE WITH G54 V-AXIS OFFSET. # EDITED 2026-03-30 RMC. ORIGINAL FILES IN MILLTURN EXAMPLE AVAILABLE ON LCNC GITHUB # M101: PARTING SLIDE SWITCHED MODE