Straight threads can be milled on machining centers using the helpful helical interpolation feature. This feature makes it easy to program the milling of straight threads with just a few commands per thread. Helical interpolation causes the machine to make a circular movement in XY axes while making a linear movement in the Z axis. This resembles a spiral movement, but the radius of the spiral remains constant during the motion. Once a thread is milled, a cutter radius compensation offset can be used to size the thread.
A tapered thread is more difficult to program. Because a taper thread mill must be used, helical interpolation won’t help. The XY motion required for taper thread milling is a true spiral. That is, the radius of the spiral must change—getting smaller and smaller as the cutter machines deeper and deeper into the workpiece in the Z axis.
Newer controls have the ability to mill taper threads because they have spiral interpolation. However, this option often represents an additional cost. If your machine has custom macro B, then you can emulate spiral interpolation. The following custom macro breaks the spiral motion into many straight line motions (G01 motions). You can even control the resolution, making the custom macro generate hundreds (or thousands) of movements as the cutter mills a taper thread.
Here is an example program (see the drawing for more on this application):
O0001 (MAIN PROGRAM)
N005 T01 M06 (PLACE TAPER THREAD MILL IN SPINDLE)
N010 G54 G90 S500 M03 (SELECT COORD. SYSTEM, ABS MODE, START SPINDLE)
N015 G00 X2.0 Y2.0 (RAPID TO CENTER OF THREADED HOLE)
N020 G43 H01 Z0.1 M08 (INSTATE TOOL LENGTH COMP., START COOLANT)
N025 G65 P1000 X2.0 Y2.0 Z-0.6 I1.0 M2.0 A0.75 C1.0 E0.0833 F5.0
N030 G91 G28 Z0 M19
As you can see, we’re treating this application as a user-created canned cycle. Line N025 is the command that calls the custom macro. In this command, X and Y specify the hole center. Z specifies the cutter position when milling begins. I specifies the incremental angle for calculations (1.0 is every one degree, 0.5 will be every 0.5 degree, and so on). M specifies the major diameter of the thread. A specifies the approach radius size, C specifies the milling cutter diameter (and you can modify this value for sizing purposes). E specifies the thread pitch. F specifies the milling feed rate.