By continuing to use this site, you agree to our use of cookies. Find out more
Forum sponsored by:
Forum sponsored by Allendale Jan 24th

Thread Milling

All Topics | Latest Posts

Search for:  in Thread Title in  
Andrew Johnston05/06/2013 11:56:59
avatar
5188 forum posts
599 photos

This thread (good grief, a pun already) will describe my experiments in thread milling on a CNC mill.

I've finally received my single point thread mill from Maritool in the US. It's a 60° version, so will do metric and unified. It seems smaller than I was imagining, the slightly fuzzy scale on the left of the picture is millimetres:

thread mill.jpg

Initial trials with the thread milling function in my CAM software produced code consisting of thousands of short G01 moves. Of course, that will achieve the correct toolpath, but it wasn't what I was expecting. Having eventually found an obscure switch in the program that allows helical paths to be generated either by linear segments or circular interpolation, I got the software to generate code using G03. Here's the relevant line of code:

G03X25.993Y-24.911Z0.000I-1.000J-0.017K1.000

This code is complete nonsense. Can anybody see why? I'm operating in the XY plane, so the only arc modifiers I can use are I and J, the K value is illogical. What it should have done is make Z=1 and not used K at all.

I downloaded a thread milling wizard from the Vardex website and used it to produce code. For a 1mm pitch thread 10mm deep it produces 10 circular interpolation calls, one for each thread pitch. Here's one of the lines:

G91 G03 X0 Y0 Z1.000 I-0.611 J0

It is interesting to note the call to G91, incremental mode. If the cutter is first centred over the hole to be milled then by using G91 both X and Y are zero, as well as J, which makes the code much easier to read.

The next task is to generate some proper parts to be made, test out feedrates, and then cut metal! I need to test feedrates because I'm not sure how the code will be interpreted. If, in the code above, I specify a feedrate of 100mm/min will that apply to the Z axis only, ie, the cut will take 0.01 minutes, or does it apply to the distance round the helix, which is much longer, depending upon the thread diameter?

It's going to be a while before I get to cut metal, but at least I can now start to get things organised to do so.

As an aside, the use of G91 caused me a few problems. When I came to use the mill for another part, after playing with the Vardex code, I had all sorts of odd numbers appear when trying to set up the tool table. Eventually I twigged that G91 is modal, ie, it is in force until explicitly cancelled. Mach3 clearly remembers the setting, even with the whole system shut down. When I typed in G90, absolute mode, the tool table settings suddenly made sense.

Regards,

Andrew

Nigel Bennett05/06/2013 12:36:11
avatar
327 forum posts
11 photos

We thread mill M2 threads on our CNC machines here at work. It's a lot easier to shake out the bits of a broken milling cutter in a much-machined chunk of mild steel than trying to get out a broken tap. I think we get a couple of hundred holes out of one cutter - we were throwing away blunt M2 taps by the bucketload before.

Trevor Wright05/06/2013 12:42:46
avatar
139 forum posts
36 photos

Andrew,

Havent used Mach3 or g-codes for many years, but have done a lot of thread milling - 100mm/min will trash the cutter.

Feeds are generally relevant to the path of the centre of cutter, which on a small thread will be very short - in other words start at 5mm/min and work up.

trevor

blowlamp05/06/2013 12:43:55
avatar
1245 forum posts
82 photos

Andrew.

Here's a bit of internal thread-milling code from CamBam. It's of no particular size, but I specified a 10mm diameter cutting tool and a 2mm thread pitch, and cuts to a depth of 10mm.

Martin.

( Made using CamBam - **LINK** )
( Untitled 6/5/2013 12:34:32 PM )
( T0 : 10.0 )
G21 G90 G91.1 G64 G40
G0 Z3.0
( T0 : 10.0 )
T0 M6
( Drill1 )
G17
M3 S1000
G0 X0.0 Y0.0
G0 Z3.0
G0 X5.0 Y0.0
G0 Z0.1
G1 F100.0 Z0.0
G2 F150.0 X-2.5 Y-4.3301 Z-0.6667 I5.0 J0.0
G2 Y4.3301 Z-1.3333 I-2.5 J-4.3301
G2 X5.0 Y0.0 Z-2.0 I-2.5 J4.3301
G2 X-2.5 Y-4.3301 Z-2.6667 I5.0 J0.0
G2 Y4.3301 Z-3.3333 I-2.5 J-4.3301
G2 X5.0 Y0.0 Z-4.0 I-2.5 J4.3301
G2 X-2.5 Y-4.3301 Z-4.6667 I5.0 J0.0
G2 Y4.3301 Z-5.3333 I-2.5 J-4.3301
G2 X5.0 Y0.0 Z-6.0 I-2.5 J4.3301
G2 X-2.5 Y-4.3301 Z-6.6667 I5.0 J0.0
G2 Y4.3301 Z-7.3333 I-2.5 J-4.3301
G2 X5.0 Y0.0 Z-8.0 I-2.5 J4.3301
G2 X-2.5 Y-4.3301 Z-8.6667 I5.0 J0.0
G2 Y4.3301 Z-9.3333 I-2.5 J-4.3301
G2 X5.0 Y0.0 Z-10.0 I-2.5 J4.3301
G1 X0.0
G0 Z3.0
M5
M30

Bazyle05/06/2013 12:54:52
avatar
4989 forum posts
198 photos

Do you cant the head over at the helix angle or is the cutter shaped to allow for the way it cuts?

Ian P05/06/2013 15:38:15
avatar
2321 forum posts
94 photos
Posted by Nigel Bennett on 05/06/2013 12:36:11:

We thread mill M2 threads on our CNC machines here at work. It's a lot easier to shake out the bits of a broken milling cutter in a much-machined chunk of mild steel than trying to get out a broken tap. I think we get a couple of hundred holes out of one cutter - we were throwing away blunt M2 taps by the bucketload before.

I dont know much about thread milling and I assumed it was like screwcutting in the lathe but with the job stationary. I can see that an external thread (and large internal ones) could be done with a rotating multi-toothed cutter that moves in a helical path, but how that works on M2 internal defeats me.

I was told the threads even smaller than M2 could be milled, I would be grateful if you could explain how its done.

Ian P

Andrew Johnston05/06/2013 15:58:58
avatar
5188 forum posts
599 photos
Posted by Ian Phillips on 05/06/2013 15:38:15:

I dont know much about thread milling and I assumed it was like screwcutting in the lathe but with the job stationary. I can see that an external thread (and large internal ones) could be done with a rotating multi-toothed cutter that moves in a helical path, but how that works on M2 internal defeats me.

I was told the threads even smaller than M2 could be milled, I would be grateful if you could explain how its done.

Very small cutters, so I understand. Cutwel list a M2 carbide thread mill, it's OD is 1.55mm. Give that the ID of an internal M2 thread is 1.679mm, for a 6H tolerance, you'd better be centred on the hole before starting!

Andrew

Ian P05/06/2013 16:10:15
avatar
2321 forum posts
94 photos

Thanks Andrew

I can see how it can work but as you say there is not a lot of room round the cutter so swarf clearance, especially in blind holes must be fun, or maybe someone will tell me that these minute milling cutters are have though-holes for coolant!

What I need is a portable self contained, clamp-on, thread milling machine, (like a miniature version of the magnetically clamped Rotabroach). No more broken taps!

Ian P

David Jupp05/06/2013 16:41:30
716 forum posts
17 photos

It is even possible to buy tools which can be used to both mill the hole and the thread - biggest benefit is cutting down on tool changes.

Andrew Johnston05/06/2013 20:32:15
avatar
5188 forum posts
599 photos

Trevor: I take the point that as the thread approaches the size of the thread mill then the centre of the cutter is traversing a very small helix. What I'm not sure about is how the controller interprets the feedrate command. For a helical interpolation there are two distances involved. One is the linear change in Z, and the other is the circumference travelled while traversing the change in Z. What I don't know is what distance the controller uses when it applies the feedrate. Is it the change in Z, or the total distance around the helix? For instance if I was cutting a 50mm diameter thread with a 1mm pitch, does it take the 1mm or the approximately 157mm around the helix.

Martin: Thanks for the code, it's alway interesting to see how other CAM systems generate code. The code seems to be making three G02 moves per revolution? Any reason why it doesn't just use one, or have I missed something?

Bazyle: The head on my CNC mill cannot be tilted. As far as I'm aware the thread mill I have bought has relief on both sides of the teeth, so that it can cut internal and external threads over a specified range of pitches, 20-56 TPI for my thread mill. I assume that this is not always the case for the more common thread mills that look more like a tap, as they sometimes seem to come in internal and external versions.

Regards,

Andrew

jason udall05/06/2013 20:47:23
2020 forum posts
41 photos
Andrew..as to which distance is used...in the cncs I know a modal command sets constant Surface speed or feed per rev..the former would be tool path speed combined with cutter perefferial speed..the latter would (should) be tool path only..but depending on the control implementation may only calculate for one pair of axes at a time...remember you are using G03G02 which need a modal command to select which plane to perform the interpolation in...
Trevor Wright06/06/2013 12:44:08
avatar
139 forum posts
36 photos

Andrew,

The cutting speed varies and even on modern expensive machines seem to break their own rules. It is generally accepted that the cutting speed is based on the OD of the tool, but in my experience it doesn't always apply.

The only rule I lived by was to start slow and work your way fast - your cutter is too expensive to gamble with.

As a side note, the bigger machines use multi-thread cutters and cut all the threads in one revolution - fascinating to watch.

Trevor

blowlamp06/06/2013 12:57:33
avatar
1245 forum posts
82 photos
Posted by Andrew Johnston on 05/06/2013 20:32:15:

...Martin: Thanks for the code, it's alway interesting to see how other CAM systems generate code. The code seems to be making three G02 moves per revolution? Any reason why it doesn't just use one, or have I missed something?...

Regards,

Andrew

Andrew.

I don't know for certain, but I believe CamBam splits its circles into three arcs of 120 degrees each, so I suppose the toolpath follows these arcs. It's still some of the most compact code that I've seen for this sort of thing if we're not including canned cycles.

Martin.

Andrew Johnston06/06/2013 22:09:13
avatar
5188 forum posts
599 photos

Martin: I still find it difficult to get my head round exactly what the I, J and K modifiers represent, but judging by the Z increments in the code CamBam is producing helical interpolations in 120° steps. Might be something to do with older controllers having problems with 180° or 360° interpolations?

The Vardex wizard I downloaded generates one 360° interpolation, if you're using a multi-tooth thread mill, a bit like a tap. For a single pitch thread mill it generates interpolations equal to the depth of the hole divided by the thread pitch. I guess that's about efficient as you can get. The wizard also seems to like using incremental dimensions, presumably because once setup most of the parameters are zero.

Trevor: It would be interesting to use a multi-thread cutter but they're rather more expensive than the single pitch ones I bought, so I'll experiment with those first.

Over the weekend I might be able to find time to do some air cuts to see exactly what is going on, and check on how the specified feedrate relates to the actual toolpath.

Regards,

Andrew

blowlamp06/06/2013 22:53:37
avatar
1245 forum posts
82 photos

Andrew.

I don't think I can help much further with this, but maybe the LinuxCNC G-code reference will help.

Martin.

John Stevenson06/06/2013 23:00:39
avatar
Moderator
5068 forum posts
3 photos

This is another thread mill code done with the new Mach4 wizards.

Again internal, 10mm cutter, 2mm pitch and I have made the OD 100 mm so it easily shows the offsets.

(***New File Started***)
(created by NFS Mill, V4)
(New File Started 06/06/13 22:59:26)
(posted for Steel )
(Strategy: Equal )
(Rapid height: 3.0000 Clearance height: 3.0000 )
G98 G80 G17 G90 G54 G64

G21 G90
(***New Tool Selected***)
(ToolNum: 01 Diameter: 10.0000 )
(Feed: 49.9500 SFM: 850.0000 Plunge: 0.2500 ChipLoad: 0.0037 )
M9
M5
M06 T1 ()
G43 H1
M03 S4500
M8
(***Thread Mill***)
(Xcen: 0.0000 Ycen: 0.0000 Diameter: 100.0000 Pitch: 2.0000 )
(Depth: -10.0000 Ztop: 0.0000 )
(Thread is Inside Right hand Climb Mill)
G00 Z3.0000
X0.0000 Y0.0000
Z-10.0000
G01 Y45.0000 F50.0
G03 Z-8.0000 J-45.0000
Z-6.0000 J-45.0000
Z-4.0000 J-45.0000
Z-2.0000 J-45.0000
Z0.0000 J-45.0000
G00 Y0.0000
Z3.0000
M09
M05
M30 (end of file)

M0BND06/06/2013 23:04:56
81 forum posts
9 photos

As I know this the K value is from the 'normal's' z +1 is upward facing, z-1 is downward facing (underneath) and any figure in between would be angular. This is for CMM's, CNC's and CADCAM (I use mastercam at work).
Not sure if this helps or not.
Andrew, I have messaged you with a link to a code generator for what I use at work for all types of thread milling.
Andy.
M0BND06/06/2013 23:15:15
81 forum posts
9 photos

10mm deep 25mm diameter 1mm pitch thread in Heidenhain would be this code....

CC X0 Y0

L PR0 PA0 R0 FMAX M3

L Z-10 R0 FMAX

L PR12.5 PA0 RL F500

CP IPA+3960 IZ +11 DR+

L PR0 PA0 R0 FMAX

I don't know why Fanuc (iso) make everything so difficult, but I do like how powerful and FAST everything is compared to Heidenhain!!!

sorry for the unhelpful code above but it's so short I just had to share!!!

Andy.

John Stevenson07/06/2013 01:39:11
avatar
Moderator
5068 forum posts
3 photos

OK so if we are showing short code the old DOS AHHA system uses this code for the same thread above.

G14 I 12.5 K1.0 L 10 F100

Thats it, one line

G14 I.. K.. L.. F..

I - Radius
K - Lead dimension
L - Number of repetions
F - feedrate

Andrew Johnston07/06/2013 15:50:50
avatar
5188 forum posts
599 photos

Martin: Thanks for the link. It has clarified how the I, J and K modifiers work. That's what I needed, a picture rather than a description.

The Mach4 code seems sensible enough, one G03 call per 2mm pitch distance. Presumably the code is plunging the cutter straight into the cut, rather than using a circular interpolation entry?

As for the Heidenhain code the only bit I understand, or like, is the IPA. beer

I had to look up G14, as it's not mentioned in my CNC guide book. According to t'internet it's polar co-ordinates absolute, although this doesn't seem to be set in stone. Very confusing if one code function can mean different things. I suppose that's the thing about standards, they always end up being non-standard.

Regards,

Andrew

All Topics | Latest Posts

Please login to post a reply.

Magazine Locator

Want the latest issue of Model Engineer or Model Engineers' Workshop? Use our magazine locator links to find your nearest stockist!

Find Model Engineer & Model Engineers' Workshop

Latest Forum Posts
Support Our Partners
Warco
Allendale Electronics
Ausee.com.au
ChesterUK
emcomachinetools
Eccentric July 5 2018
cowells
Eccentric Engineering
Subscription Offer

Latest "For Sale" Ads
Latest "Wanted" Ads
Get In Touch!

Do you want to contact the Model Engineer and Model Engineers' Workshop team?

You can contact us by phone, mail or email about the magazines including becoming a contributor, submitting reader's letters or making queries about articles. You can also get in touch about this website, advertising or other general issues.

Click THIS LINK for full contact details.

For subscription issues please see THIS LINK.

Digital Back Issues

Social Media online

'Like' us on Facebook
Follow us on Facebook

Follow us on Twitter
 Twitter Logo

Pin us on Pinterest