Radio, even without spindle feedback you can tap on mills with Mach very effectively without even having to purchase a tapping head. I use a floating tap holder (
www.maritool.com has them) to make up for the inaccuracy of the spindle control, which in my case is just my breakout board sending an analog signal to the VFD to control the RPM of the spindle, along with stop, start and reverse commands.
Below is the tapping macro I wrote to use on the machine. I use spiral point taps and it works great, threads from 4-40 up to 3/8"-24 on both 6061 Al and mild steel. Don't sweat the reversals on the spindles, VFD's are designed to do that and smoothly ramp the motor speed up and down, you can set how fast you want this to happen.
The underfeed parameter should be tweaked for your machine, 9% is what works good for mine.
Would a tapping head be better? Someways yes, someways no, probably faster but keep in mind you lose a fair amount of Z travel with the long tapping head.
Paul T.
(Filename: TapHole.tap)
(Taps the hole at the current X, Y location to the specified depth)
(Thread Pitch in Turns per Inch must be set)
(Z must be set at zero on top of workpiece)
G20 (Units: Inches)
G40 G90
(Set Editable Parameters)
#1=0.36 (Set Depth)
#2=32.0 (Set Thread Pitch in Turns per Inch)
#3=140 (Set RPM)
#4=0.1 (Set Rapid Height)
(Internal Parameters)
#103=0.91 (Underfeed, 0.91 -> 9 %)
#104=[#103 * 1.0/#2] (feed rate adjusted for under feed)
G0 Z#4 (Move down to rapid height)
M98 P1025 L1 (Call Tap subroutine)
M30
O1025 (Subroutine to Tap)
G95 F#104 (Set to ipr mode and set feed rate)
M3 S#3 M8 (Start Spindle and coolant)
G1 Z[#103 * #1/-1] (Tap down to compensated depth)
M5 (Stop Spindle)
M4 (Start Spindle in Reverse)
G1 Z#4 (Raise spindle at feed rate to rapid height)
M5 M9 (Turn off spindle and coolant)
G94 (Go back to ipm mode)
M99 (Subroutine Return)