Hi. Weve been using thread mills on stainless happily. We use the subroutines generated by the manufacturer's website. Their subroutines are created with X0Y0 being the hole location with absolute depths and circular G91 moves.

So, in the "office programming system" we just move to a point over the hole and put in a "manual entry" to call the manufacturer's subroutine to thread the hole. This worked great on older Mazak machines (M2) but not on the newer Mazak (M-Plus). On the old machine G54 CANCELLED G92, allowing us to move to the next hole and repeat the process, but on the newer one the G92 stays active, as other posts here have said, despite the G54 being there.

Thoughts? I'd really just like a way to program (from the office) to position to a hole and run the thread sub. If all else fails we're going to make the depth moves G91s also and eliminate the G92.

OLD CODE
G54
(hole 1)
G90 G0 X5.0 Y3.0
G92 X0 Y0
G65 P1420 (sub threads on x0y0)
G54
(hole 2)
G90 G0 X7.0 Y3.0
G92 X0 Y0
G65 P1420 (sub threads on x0y0)
G54