#!/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-0] == "FALSE"} { puts "kinematic does not match! Are you calling M100 instead of M300?" exit 1 } # RESTORE INI axis limits hal setp ini.x.min_limit [set ::AXIS_X(MIN_LIMIT)] hal setp ini.x.max_limit [set ::AXIS_X(MAX_LIMIT)] hal setp ini.x.max_velocity [set ::AXIS_X(MAX_VELOCITY)] hal setp ini.x.max_acceleration [set ::AXIS_X(MAX_ACCELERATION)] hal setp ini.0.max_velocity [set ::JOINT_0(MAX_VELOCITY)] hal setp ini.v.min_limit [set ::AXIS_V(MIN_LIMIT)] hal setp ini.v.max_limit [set ::AXIS_V(MAX_LIMIT)] hal setp ini.v.max_velocity [set ::AXIS_V(MAX_VELOCITY)] hal setp ini.v.max_acceleration [set ::AXIS_V(MAX_ACCELERATION)] # 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 # M100: PARTING SLIDE NORMAL MODE