Bill,
I do not know the exact science behind it. I have only gone by what others have stated. Awhile back I stared a thread at the PM forum discussing NPT thread milling and what some people were saying was it has something to do with the ellipses and mismatches of threads. Basically along the lines of you cannot make a perfect thread with a threamill but doing it ¼ pitch to Z movements gets you near there.
thread milling 1/2"-14 NPTF - Practical Machinist - Largest Manufacturing Technology Forum on the Web
It was stated that there was a lengthy thread some time ago debating this issue but I did a search and could not find the thread. Sorry for the vague explanation and I wish I could have found the thread detailing some of this. It does however make sense to me because my predecessors always programmed the threads this way and I only followed suit not really knowing why until someone pointed it out.
Stevo
As a predecessor I can say sometimes always following predecessors is not wise because technology changes and us predecessors sometimes get stuck in a rut.
There are a couple of reasons why someone might program a circle in four 90 degree arcs. One is that many moons ago NC machines could not do an arc larger than 90 degrees in a single command so full circles had to be made up of four arcs. This practice sometimes seems to hang on under the principle that if my pappy did it that way I am going to do it that way.
The second possible reason to program four arcs when cutting NPT is because the radius of the cut is always increasing (or decreasing depending which direction you are going) along the thread. This requires either a macro to constantly calculate the change in radius or CAM to program it in zillions of short arc segments to approximate the taper. But if you do not have either and you like calculating and typing numbers you can 'fake' it by using four arcs which each creep out a small amount. You don't get a truly round thread but for standard NPT threads for low pressure using thread tape for sealing it will work. Don't even dream of doing it for NTPF because that requires metal to metal contact for the seal and this type of approximation is not good enough.
An open mind is a virtue...so long as all the common sense has not leaked out.
And again I become smarter
The people on this forum are great! I read the link that Stevo1 posted and see what he was talking about. It seems like Geof nailed it with his explanation. Angelw was correct about my question though, I will not be milling NPT threads...just straight threads. I does seem to me that because I don't have absolute spindle rotation control, that I will have to use a cutter designed specifically for the pitch of thread I want. Where would I find an animal like that
cj
An open mind is a virtue...so long as all the common sense has not leaked out.
Geof is absolutely correct. No synchronization between spindle rotation and Z move is required, only the ability to helical interpolate; not all machine have this feature. If your machine does, then the program will be simple. If not, there are free programs available on the Internet that will generate the code in a series of small, 3 axes moves to mill the thread, as explained by Geof in an earlier post. Given that you seem to be mastering User Macro programming, you could develop a program that will calculate the 3 axes move on the fly. I've done this on an early 80's Fanuc control and it worked fine.
The attached pictures may explain better than words how the process works. You will note that the tool blends into and out of the cut via an approach and exit radius.
The threads milling cutters shown in the pictures are designed to machine the thread in one, or a small number of tool path rotations. Although they look somewhat like a tap, the form of the cutter is a series of annular "V" grooves, pitched according to the lead of the thread being cut. This type of thread mill has the following properties:
• Only one tool needed for right and left hand threads and the same tool covers a
wide hole diameter range.
• No upper limits to bore diameter.
• Full profile along the entire thread to exact depth, also in blind holes
without relief groove.
Regards,
Bill
![]()
Last edited by angelw; 03-26-2011 at 06:54 PM.
Angelw, your picture references a Downing Mill??? Is that a particular make of mill bit, or a type of mill bit? From the pictures, I assume that each mill bit would be for a particular pitch of thread and would work on inside thread and outside thread as well.
I will do some searching and see what I can find.
thanks as always
cj
lmao
I see that I read that wrong... down milling is recommended...
... and the education continues![]()
cj,
Its better known as Climb milling. The rotation of the cutter relative to the direction of feed is such that the teeth of the cutter enters the workpiece at the point of maximum chip thickness and gradually decreases to nothing on exit from the cut. The action will be of a cutter trying climb over, or pull the workpiece into it, as opposed to trying to push the work away along the direction of cut. You generally, always try to climb mill when using a CNC machine, that effectively have no backlash in the feed system. This is not possible on most conventional milling machines unless they are equipped with ball screws and nuts, or have a good method of backlash elimination. Any backlash in the feed system usually results in the work and machine table being pulled into the cutter by the extent of the backlash, often with disastrous results.
The opposite to climb milling is termed conventional milling and is identified by the cutter entering the cut at the minimum chip thickness and gradually increases as the tool rotates and the work feeds towards the cutter. In this system the chip thickness starts at Zero and sufficient pressure must develop to allow the cutter to enter the cut. Whilst this pressure is developing the workpiece is still moving relative to the cutter and sliding of the tooth of the cutter over the workpiece results until there is enough pressure for the tooth to enter the cut. This sliding and penetrating is repeated throughout the cutting operation resulting in heat, poor finish, and a rapid increase in the blunting of the cutter. The cutter becoming dull exacerbates the pressure required for the tooth to enter the cut and the distance of sliding increases. Accordingly more heat is generated and the surface finish becomes worse as the cutter becomes more blunt.
Regards,
Bill
I had read about climb milling and conventional milling before but hadn't heard it referred to down milling. I have several collets/tool holders on order and they should be here tomorrow or the next day. So far I have only been able to mill foam.. ( 2.5 pound density polyurethane foam). The program that I wrote looks excellent in the foam (no sign of back lash problems and beautiful transitions where the axis are reversing, but since there is no load on the bit at all, I really have to wait until I cut metal before I celebrate too much. Anyhow, as you can imagine, I can't wait for the collets to get here so I can make real chips
cj
Bill, I hope you are still following this thread
I have some practical machining questions for you.
After reading your last post I did some more reading and determined the following:
If your CNC mill has good ball screws and solid axis control, you should always climb mill. Is that a correct assumption?
In line with that thought I have modified my code as follows:
G21 (sets the file units to millimeters. )
#1 = 38 (Diameter of large arc)
#2 = 9.5 (Cutter diameter)
#3 = -2.1167 (Z depth increment value )
#4 = [#1 + #2] (Diameter of large arc to mill... arc diameter + tool diameter )
#5 = [#4 / 2] (Radius of Large arc to mill )
#8 = 100 (travel speed )
#9 = 23 (diameter of small arc)
#10 = [#9 + #2] (diameter of small arc to mill )
#11 = [#10 / 2] (radius of small arc to mill )
#12 = 25.5 (distance between the two arc centers)
#13 = [2*ACOS[[#5-#11]/#12] * 57.2957795] (angle Theta in degrees start of large arc)
#15 = [#5 * COS[#13]] (x position to start of large arc)
#16 = [#5 * SIN[#13]] (y position to start of large arc)
#17 = [#11 * COS[#13 * -1] + #12] (x position to start of small arc)
#18 = [#11 * SIN[#13]] (y position to start of small arc)
(rough cut the outside of the part)
G0 X#15 Y[#16 * -1]
#6 = 0 (tool depth counter)
#7 = 0 (actual Z depth variable )
M98 P100 L6
(cut the cut the large hole)
#19 = 28 (Diameter of Hole)
#20 = [#19 - #2] (Corrected Diameter of HOLE to mill... hole diameter - tool diameter )
#21 = [#20 / 2] (Radius of HOLE to mill )
#22 = [#21 * -1] (offset to start of operation)
G0 Z5 (clear the Z axis from the work surface)
G0 X#22 Y0 Z5
#6 = 0 (tool depth counter)
#7 = 0 (actual Z depth variable )
M98 P110 L6
(cut the cut the small hole)
#19 = 12.5 (Diameter of Hole)
#20 = [#19 - #2] (Corrected Diameter of HOLE to mill... hole diameter - tool diameter )
#21 = [#20 / 2] (Radius of HOLE to mill )
#22 = [#12 -#20] (offset to start of operation)
G0 Z5 (clear the Z axis from the work surface)
G0 X#22 Y0
#6 = 0 (tool depth counter)
#7 = 0 (actual Z depth variable )
M98 P110 L1
(thread the large hole)
#25 = -1.59 (pitch)
M6 T7 (pause for tool change)
#3 = -11.13 (reset depth ... start threading here)
#6 = 0 (reset counter)
#19 = 29.27 (Diameter of Hole)
#20 = [#19 - 11.41] (Corrected Diameter of HOLE to thread... hole diameter - tool diameter )
#21 = [#20 / 2] (Radius of HOLE to mill )
#22 = [#21 * -1] (offset to start of operation)
G0 Z5 (clear the Z axis from the work surface)
M0 3 (pause 3 seconds for tool motion)
G0 X[#22 + 2.5] Y0 (allow cutter clearence to position at bottom)
M0 3 (pause 3 seconds for tool motion)
G0 z#3 (go to start depth)
M0 3 (pause 3 seconds for tool motion)
G1 X#22
M98 P120 L8
M30
O100 (mill the shape)
#6 = [#6 + 1] (increment counter)
#7 = [#3 * #6] (adjust tool depth for this count)
G1 Z#7 (set tool depth)
G17 G02 X[#15] Y#16 I[#15 * -1] J#16
G01 X#17 Y#18 (cut to start of small arc)
G17 G02 X#17 Y[#18 * -1] I[[#17 - #12]*-1] J[#18 * -1] (select the XY plane and do small arc counter clockwise )
G01 X#15 Y[#16 * -1] (cut to starting point of large arc)
M99 (return from subroutine)
O110 (mill a HOLE)
#6 = [#6 + 1] (increment counter)
#7 = [#3 * #6] (adjust tool depth for this count)
G1 Z#7 (set tool depth)
G17 G3 x[#22] y0 i#21 j0 (select the XY plane and do arc clockwise )
M99 (return from subroutine)
O120 (thread the large hole)
#6 = [#6 + 1] (increment counter)
#7 = [#3 - [#6 * #25]] (adjust tool depth for this count)
G17 G3 x[#22] y0 i#21 j0 Z#7 (select the XY plane and do arc counter clockwise climb cut)
M99
You can see that I have added some things to it since I last posted it. It all seems to work correctly so far with the following exceptions:
I have not determined the method I am going to use to remove the 'remaining post' in the center of the large hole. I am test machining in polyurethane foam right now so I just snap it off with my finger when I do the tool change. I was thinking about just doing an additional call to the "mill a hole" subroutine with a diameter that would eliminate the post, or I could just leave the z axis at the bottom and do a radial spiral inward to remove the post. Which way would you recommend?
The other thing I am still not sure about is the major diameter of the thread. I can only measure the minor diameter at this point and have guessed at a first pass of 1.27mm for the thread cutter I have. It is like a key cutter with the 60deg cutters and not like the pitch specific style with many rows of cutters. The cutter seems somewhat fragile looking and I am not sure how deep I can safely cut in one pass, or how fast I should spin the cutter. I am(will be) cutting aluminum. Do you have any comments or suggestions on this.
As always, thanks for all of your help
cj