Threading a Hole for a Screw/Bolt on a Nomad (Tapping/ThreadMilling)

Sorry for the newby question. Just got my Nomad two days ago and I’m going through the normal tutorials and exercises to get acquainted with CNC. So far I’m getting the hang of it and have been fairly successful designing shapes and milling them accurately. Where I can’t seem to set up a job right is when I already have the piece of aluminum I need cut to the right size and all I need is to mill pockets and holes for tapping screws. I’m sure it’s a simple answer but can’t seem to find it because it’s probably right in front of me. Also, can holes be tapped with the Nomad after changing the bit of course?. Any info would be appreciated.

I’m definitely no expert (first CNC cut for me was just a few weeks ago :slight_smile: ), but from what I can tell, if you’re using MeshCam to generate your toolpaths, you would have to make a new model with just the pockets and holes (and not the rest of the shape modeled out) so that MeshCam only tries to clear those pockets and holes. i.e. just trick it into doing what you want: if you have a super complicated shape but just want to mill out 1 pocket and a hole, just create a model of a rectangular block with a pocket and a hole in it and give it to MeshCam so all it tries to mill out is that pocket and hole. Alternatively, give the full model to MeshCam but use the “Set Machining Area” option and make it only mill out the sections with the pockets or holes by defining machining and keepout regions.

Yes, you can set drilling operations in MeshCam, see here.

Alternatively, you could try using another CAM program - I started using Fusion360 (free for hobbyists, and imo pretty nice for modeling as well), and it has options for rest machining, where you can give it a model that represents what your piece already looks like, and it will only generate toolpaths that take it from that model to the new one (so you can give it a model of your piece minus the pocket and hole, then a model of the piece with the pocket and hole, and it will only mill away the pocket and hole).

It also has a lot of options for specific drilling operations with control over the toolpath strategies. Not that I know the differences between those strategies, but you can change whether it goes straight through or if it goes down a bit and then comes back up to eject chips before continuing, etc… It also has options for tapping the hole, but I’m not sure our spindle has the horsepower to do a regular tapping operation. I’m doing some research on this right now, but it looks like the other solution would be to do threadmilling, and I actually just posted a question on it a few hours ago. I’m pretty sure it can do threadmilling; just not sure of the exact details of how to do it yet. You can follow along and see if anybody more knowledgeable chimes in here

Spoiler alert… you will find no good answers in my post; however, I’ve been working through the challenges of drilling and tapping various types of threads with the Nomad. I’ve tried tricking Meshcam with various types of geometry, using Fusion 360 great features (except the CAM gcode generated for drilling and threadmilling have instruction not currently supported by carbide motion), and most successfully using CamBam, though that gcode also needs some hand-manipulation to work.

At this point I’ve given up on full-auto toolpaths and have been hand-coding scenarios for the specific sizes I need (i.e., a specific M6, M4, and M3 profile) that will peck-drill a hole, mill it to the the appropriate size, then thread it using various types of threadmills (I have several different types I’m experimenting with). I’ve taken gcode generated by these tools and hand-modified it so carbide motion will accept it. I’ll post examples with I get back home today.

One suggestion if you are wanting to try threadmilling… test your gcode first in free-air, then on machineable wax (or similar), and finally on your target material. Good quality threadmills are expensive and wax takes the profile nicely with less chance of pranging your mill if something goes a little wrong.


Thanks Warren and kjl. Today I tried Meshcam and selecting an area for milling. I was succesful in milling a hole and countersinking for the screw. I’m considering tapping by hand afterwards. This might be my immediate solution until Carbide, Meshcam or Fusion 360 have a better solution. I’m going to experiment with pockets and holes today on renshape to see how accurate I can get. Is there a group of people around the NY area that meets to exchange experiences?. Thanks.

I just finished my test to see if I could mill on precut pieces somewhat easily. So far I think I can. Modeled in Fusion 360 an arbitrary piece to fit a 3x5 piece of renshape

Exported the STL and opened in Meshcam. Set my zero position, selected an area just outside the big pocket and used these settings.

This is the result in about 25min.

Pretty happy with my progress so far. Seem to be understanding the basic concepts and workfow. There is a .3 discrepancy between the model in Fusion and the actual piece. Is it because of my MeshCAM settings?.

I’m loving the process and are having tremendous fun learning. Looking forward to suggestions and tips.

I just did an test in midair and, you’re right @warba, the peck-drilling code from Fusion360 is not supported. However, the threadmilling code it generated was accepted by CarbideMotion and seemed to do the right thing when I ran it through the Nomad (again, just running in air).

The G98 G73 line in the drill code… again I’m brand new to machining/CNC but it looks like it should not be too hard to cook up a script to replace all those lines in your fusion360-generated gcode with a whole bunch of g0/g1 Z commands to replicate it. Or better yet we could ask Rob and see if he could add it to CarbideMotion.

If you did a roughing pass only in meshcam, it might explain the discrepancy - it deliberately leaves some stock on all surfaces (so the pocket may be too shallow as well by .03".

You could try setting the “stock to leave” in the rouging pass to 0 or enabling some finishing passes…

Delving into the Gcode seems a little daunting to me right now. Will explore using Fusion360 for the GCode later on. I did do a finishing pass. Hmmm. Thoughts?.

Have you played with spline travel?

I haven’t received my Nomad yet…so I’m not sure if it will even run with Motion / CAM gCode / etc (I’m a CNC noob still)

Having said that…tweaking spline travel has greatly improved the quality of my 3D prints, and is a substantial drop in rigid motion // wear and tear on my Lulzbots. If nothing else I’m testing driving it thru Motion for (hopefully) smoother movements all around. (possibly to fake/fudge a helixed movement pattern for threading)

The results are crazy impressive. Seam cross-section closeup | Details | (edit)

I wouldn’t use it for general machining. Just thinking out loud for thread possibilities.


A (drill and) tap operation in CNC requires a reversible spindle (to back out after the tap is done), considerable horsepower and torque (to push the tap through the stock), G code support, and lubrication.

The Nomad does not support the “rigid tap” and “drill program” G codes, does not have a reversible spindle, and does not have the horsepower or torque to handle a tap operation. Also, tapping requires very slow speeds - lower than what the Nomad can do.

Yes, we can make precision holes with end mills. Yes, we can drill softer materials without the “drill program” G code (CAREFULLY!).

Yes, lubrication can be done manually. Do not place a body part in the work volume of a CNC machine! It is disaster waiting to happen - just don’t do it.

However, in general, the Nomad is not suitable for drill and tap operations (due to the other limitations).


But using a threadmill instead of a tap, given you can make the appropriate gcode that the Nomad can ingest, should be possible. No need to reverse spindle, and can take multiple passes to lessen required spindle horsepower and rigidity.
I’ve been trying to find a good tool that makes gcode the nomad can use, but have been unsuccessful thus far. Most I’ve found want to use gcodes (tool radius offset, and others) that aren’t supported by the nomad; Fusion 360 has yet to implement threadmill tools, and defining a workaround of a dovetail or similar I have difficulty getting the proper thread diameters, but not sure exactly why.


1 Like

I was able to get fusion360 to give me threadmilling paths. I’m at work so I can’t check my job exactly, but you’re right in that they don’t support the threadmiling shape in the tool library. However, a while ago I spent some time researching this on the fusion360 forums, and I think (again, I don’t have fusion360 in front of me so this is just memory), the way to do it was simply to define a flat endmill with the same outer diameter as the threadmill, and then under the drilling operations in fusion there is a threadmiling operation which will generate a valid pass (you can even define a very small step over and it will give you a multi pass operation where it widens the thread on each pass). Iirc this workaround (flat endmill) was originally suggested by a fusion360 employee providing support on the forums.

Iirc there is a way to define the actual geometry of the screw hole + threads, but that this was not the way to generate the pass. I think you just model the hole, define an operation to drill that out first with a separate pass (drill or pocket or contour, etc.), and then you create a threadmill operation on that hole, and in the operation dialog you specify the pitch (M5x.8) and then it’ll generate the threadmilling pass for you…

Let me know if you need help and I can dig up my fusion project tonight or this weekend and tell you exactly how I did it…

edit: after posting this I got thinking maybe I should forget the drill op of the minor diameter, and just model a 3mm hole and see if that is the problem. maybe even saying I want a M3x0.5 thread is instead using the hole max of 2.5mm; I’ll go give that a try…

Thanks kjl; I did read that info also, and basically that is the method I’ve been trying (I defined a dovetail instead of a flat endmill…like a slotting mill)… I do get a toolpath but it is the wrong sizing and that’s the part I just am struggling with.

For example… I create a sheet 10mm x 10mm x 3mm thick, and I make a 2.5mm hole (cylinder) in the exact middle.

I go into CAM and drill a 2.5mm hole, then do a threadmill operation at M3x0.5 (3mm, 0.5mm pitch).

The threadmill I am using has a diameter of 2.2352mm (0.088"), so I have a simple tool defined with a diameter of 2.2352.

The toolpath generated is a nice helical spirial, except the diameter is too small, so basically the toolpath puts the 2.2mm mill down in the previously drilled 2.5mm hole, and makes a nice little helical upcut but only with a diameter of about 0.18mm instead of 3mm.

The actual gcode below shows a XY of 0.094 +/-

So that’s where I’m stumped… somehow doing a threadmill op and saying M3x0.5 and a tool of diameter 2mm makes a helical toolpath that is too small. Hmmm…

T2 M6
S10000 M3
G0 X-0.015 Y0.079
G43 Z15. H2
G1 Z-3. F10.
X-0.094 Y0.
G3 Y-0.094 I0.047 J-0.047
X0.094 Y0.094 Z-2.75 I0.094 J0.094
X-0.094 Y-0.094 Z-2.5 I-0.094 J-0.094
X0.094 Y0.094 Z-2.25 I0.094 J0.094
X-0.094 Y-0.094 Z-2. I-0.094 J-0.094
X0.094 Y0.094 Z-1.75 I0.094 J0.094
X-0.094 Y-0.094 Z-1.5 I-0.094 J-0.094
X0.094 Y0.094 Z-1.25 I0.094 J0.094
X-0.094 Y-0.094 Z-1. I-0.094 J-0.094
X0.094 Y0.094 Z-0.75 I0.094 J0.094
X-0.094 Y-0.094 Z-0.5 I-0.094 J-0.094
X0.094 Y0.094 Z-0.25 I0.094 J0.094
X-0.094 Y-0.094 Z0. I-0.094 J-0.094
X0. I0.047 J0.047
G1 X0.079 Y-0.015
G0 Z15.

Nope, that wasn’t it… it DID increase the diameter of the helical, but not enough.
Not sure how a 2.232mm diameter tool is expected to make a 3mm thread with X and Y values of +/- 0.27.

I guess there is some part of this I just don’t understand. Seems like it should be simple enough… but…

T2 M6
S10000 M3
G0 X-0.033 Y0.237
G43 Z15. H2
G1 Z-2.776 F10.
X-0.039 Y0.232 Z-2.834
X-0.054 Y0.216 Z-2.888
X-0.08 Y0.191 Z-2.935
X-0.112 Y0.158 Z-2.97
X-0.15 Y0.12 Z-2.992
X-0.191 Y0.079 Z-3.
X-0.27 Y0.
G3 Y-0.27 I0.135 J-0.135
X0.27 Y0.27 Z-2.75 I0.27 J0.27
X-0.27 Y-0.27 Z-2.5 I-0.27 J-0.27
X0.27 Y0.27 Z-2.25 I0.27 J0.27
X-0.27 Y-0.27 Z-2. I-0.27 J-0.27
X0.27 Y0.27 Z-1.75 I0.27 J0.27
X-0.27 Y-0.27 Z-1.5 I-0.27 J-0.27
X0.27 Y0.27 Z-1.25 I0.27 J0.27
X-0.27 Y-0.27 Z-1. I-0.27 J-0.27
X0.27 Y0.27 Z-0.75 I0.27 J0.27
X-0.27 Y-0.27 Z-0.5 I-0.27 J-0.27
X0.27 Y0.27 Z-0.25 I0.27 J0.27
X-0.27 Y-0.27 Z0. I-0.27 J-0.27
X0. I0.135 J0.135
G1 X0.079 Y-0.191
X0.12 Y-0.15 Z0.008
X0.158 Y-0.112 Z0.03
X0.191 Y-0.08 Z0.065
X0.216 Y-0.054 Z0.112
X0.232 Y-0.039 Z0.166
X0.237 Y-0.033 Z0.224
G0 Z15.

1 Like

Hey hey - this is a success :smiley:

Note that both X and Y are 0.27, so this point is on the diagonal, not on the X or Y axis - it’s really sqrt(.27^2+.27^2) distance from the center,

sqrt(.27^2+.27^2)+2.2352/2 = 1.4994, so this is a 3mm outer diameter!


Ah HA ! Thanks so much. That was the bit of knowledge I was missing. I guess I’ll go fire up the mill and give it try :smile:

1 Like

You are a superstar! Thank you for the help.

Quick Pic of outcome in plexi as a test… will try some aluminum now…

Video of happy little M3 threadmill doing it’s thing:


What mill did you use? those be close to the top of my ‘to buy’ list.

I got my threadmills from lakshore carbide.

This particular one is:


Awesome! I have a bunch of stuff (drills, a threadmill, some aluminum plate) that I originally bought to make a new bed for the nomad, so I eagerly await any feeds and speeds info you may have :smiley: … though now that I have some experience with the nomad I imagine making a new bed will be hours and hours of milling!