Close

Workholding

A project log for Minamil 3dp: another minimal CNC mill

A very compact, very inexpensive, very DIYable, very precise little CNC mill. This one uses 3d printed parts.

paul-mcclayPaul McClay 08/21/2025 at 17:290 Comments

CNC milling/routing involves holding the thing that's getting cut.

(If you aim to build one of these for yourself, start here not here! This is extra complexity you almost certainly do not need! More exclamation marks: !!)

I've been using double-sided tape to hold work since the second iteration of the laser-cut precursor to this project. It's hard to beat for simplicity, and it works well enough often enough to make some stuff. But sometimes it reminds me to think about mechanical workholding again. After a few years of no good ideas, I think this might work.

spaces for nuts below and places to drill for screws above -- with an arbitrary 10 x 10 patch of nuts just to show what 100/207 looks like

That's


Slab

I don't know what to call the new slab on top of the top part (of "bottom", "middle", and "top" parts of the XY stack). If it were square-rigged, it would be the t'gallant part. Maybe it will be just "slab" for now.

Outwardly, the slab is just a flat slab with ½-dozen screws through it. Between the solid top & bottom surfaces there are void holes aligned with the nut pockets in the top surface of the top part. More to the point, "holes" means vertical cylinder walls around the holes to bear compression.


Because ... why?

Wherever you want to screw/clamp/hold work on top of the slab, drill through the nearest "drill here" mark on the bottom of the slab to open the top and bottom (i.e. bottom and top) of one of the internal voids and drop a nut in the corresponding pocket.

The selectively populated 8 mm square grid of "drill here" marks is easier to see in the CAD render below than in the photo above. (even tho the marks are bigger in the photo)

"legal" points of 8 mm × 8 mm grid

I don't know whether or not this idea is actually novel, but I don't recall seeing it anywhere else. I also don't know whether or not it is actually useful, because I haven't actually used it to make anything other than pretty pictures for this page.

Here is a (i.e. the) a worked example:

drill through "legal" grid points nearest where you want to place screws
drop square nuts into corresponding square nut pockets
secure the slab on top of the top; now there are robust metal threads under the drilled holes
workholding widgets
workholding widgets holding work -- in a repeatable(ish) position
!!: different length screws shimmed to near-exact lengths to fully engage nut thread without bottoming in shallow pockets!


Maybe

Of course it works. Because what could go wrong? ¯\_ (ツ)_/¯

vibration

Screws working loose from vibration is the first risk that comes to mind. The bet here is that clamped PLA is springy enough to prevent that. If not: Thin square nylock nuts would be great but I haven't found such a thing yet. Common hex nylocks would require deeper pockets (thicker top or fewer pockets) and holding a hex nut shape against torque with PLA is less easy than holding square nuts. McMaster-Carr lists "thin profile" hex nylocks, which seem quite pointless in smaller sizes: 3.9 mm thick vs 4 mm for m3. It appears that barleycorn nuts run thinner per thread diameter: 4-40 thread at 2.85 mm diameter is 95% of m3 diameter (90% section area) and "thin profile" 4-40 nylock nuts are only 2.8 mm thick or 70% of m3 (4 mm), so "thin" 4-40 nylock nuts could be accommodated within current dimensions with some very thin pocket floors. There are also anti-vibration screws: e.g. with a patch of nylon on the thread, or "tri-lobe" shape (tho use with steel nuts would be off-label). Or maybe just 3 mm o-rings under the screw heads.

widgetry

Those totally credible-looking "workholding widgets" were totally just whipped up to make the few  ̶p̶r̶e̶t̶t̶y̶  helpfully illustrative pictures above. For brevity (hah!), I've deleted a bunch of words that were here about why I'm downplaying the photo model widgets. As said up near the top of this log, I think you almost certainly do not need to fuss with this. So if you are motivated to fuss with this, it's presumably because you have a use case that makes it seem probably worthwhile, so you'll likely have a pretty specific idea of what you need and should make that. If someone works up and shares some really useful general-purpose clampy widgets for this scale, then great!

distortion

I have no idea how screw torque/tension, either slab-to-top or widget-to-slab, will affect the shapes of things, except that it will be inconsistent if torqued by hand.

naïveté

My Dunning-Kruger coach tells me this is fine.


Portable

While nuts mostly live "in" the top part, and the pockets in the top provide location and torque, they take up against the bottom of the slab in use. The slab and workholding and held work become a unit can be lifted off the top of the XY stack. As hinted in photos above: a separate copy of the top part -- or top few mm of the top part -- makes it possible to prepare a setup on a slab separately then move the set up slab to the machine for work.

nuts start in the X+Y top for location and torque but become part of the slab+work unit in use


But really

As already said, I haven't actually used any of that workholding widgetry, including not using it to cut the brass widget used for a photo model.

Here's what I'm actually using:

decreasingly thick spoil board double-stick taped to un-drilled slab, upon which I double-stick tape stuff.

Same old double-stick tape on a double-stuck spoil board. At least with this arrangement I can take the slab off the XY stack for immoderate application of force to liberate well-stuck parts. That helps sometimes because really rigid material doesn't peel, and peeling is how taped things come apart with moderate force.

... and now I'm thinking that I might add the six slab-attachment screw/nut points into the vanilla flat-top top part where they can be either ignored or used to attach a plain slab for the benefit described just above.



Stiff(ish)

For stiffness, this arrangement depends mostly on the slab. To minimize reliance on the stiffness of the top part of the XY stack, the six attachment screws are located near where sliding hardware attaches to the bottom of the top of the stack. I've assumed, then, that it's ok for the top part to give up some stiffness by omission of its internal structure and breaking up the top skin. (and maybe giving up the supporting arch in a future revision)

psych

The slab could be made stiff simply by making it thick and/or dialing up lots of perimeters and infill. Obsessively not doing that has burned a pile of time & brain strain over the course of this project. Early in the project, between identifying a weak spot in the X top and working out the "arch" brace, I put some effort into modeling internal structure to provoke the slicer into adding plastic where it would actually reinforce something instead of just burying weakness in perimeters, infill, and thickness. While internal structure got into my head largely as a side-effect of not thinking of the arch brace first, it's become something of a cognitive addiction. The pursuit added a pile of time & brain strain to iterating the vertical axis where, if I may quote myself:

"Are resulting parts actually stiffer to operating loads than parts printed with more perimeters up to similar total mass of plastic? Maybe. Is the difference worth the extra design effort? Almost certainly not. Having done it, I have to admit the result is more vanity art project than engineering."

Did I learn? Of course not. Another pile of time & brain strain went into modeling something that would provoke the slicer to add internal span-wise & compression reinforcements in the slab without burying either my CAD or slicer (i.e. make updates take too many minutes) or print hours. Consider that 30 layers of ~200 screw positions in a 255-cell grid multiply any feature by 6 or 8000. I was very pleased with myself for eventually cracking that. Until, in the course of writing it up for this page right here, I realized a vastly very much more simple way to make it, eh, not very much less stiff. Speed-run stages of grief; click, shift-click, delete.

simple

The slab has no internal structure. The simpler way is: grid infill with adjusted density.

et voilà:

grid fill adjusted to do the right thing

When asked for grid infill at 28.8% density, my slicer gives me the infill shown above with:

adjusted grid fill doing the right thing

The void-intersecting grid doubles half (two opposite quarters) of each void wall and also adds the four perpendiculars. The two-quarter wall doubling depends on sufficient infill anchor length, or "Length of the infill anchor", or whatever your slicer calls it. Orca's default is working for me for now. That might be sufficient to bear workholding compression -- tbd.

Again 28.8% is the magic number for me for now. Grid fill. You may have to tweak the fill fraction to get the same infill grid spacing from your slicer.

I don't know why the infill density that matches void spacing also aligns almost exactly with the void centers. That seems like a poor bet to rely on. If not so well matched for you, adding a small single-layer appendage to a corner of the part should work to shift the slicer's infill pattern. Some (most? all?) slicers allow adding a primitive shape like a slab/box or disk/cylinder.

If you can't or would rather not get so involved in slicing your part: "enough" perimeters, fill, and maybe a vertical stretch for thickness should get the job done. This may be an exception to the general principle of favoring perimeters over infill for strength.

Or maybe slab stiffness just doesn't very much affect actual milling results  ¯\_ (ツ)_/¯ . I'm still not actually objectively assessing which design choices or tweaky details matter.


[1] Yes, that's a result I've preferred to avoid by not using grid/cubic fill. I'm pretty sure that's not a concern here.



Build

Repeating: If you aim to build one of these little CNC mills for yourself, start here not here! This is extra complexity you almost certainly do not need!

If you're building your own "Minamil", I think it's virtually certain that you should not bother with this until you've got the basic machine working well enough to make stuff, and made some stuff, and organically encountered a workholding problem that makes fiddling with this look easier than fussing with double-stick tape.

hardware

print

See STLs 4 XY & slicing for slicing/printing parameters. Mainly the "General" parameters.

download minamil3dp-XY-workholding-STLs-v0.9.1.zip from Files section @@@upload

filenames: "minamil3dp-{part}-v0.9.1.stl

assemble



Whinge

Yes, it took ~3½ months after MRRF to kick out this "quick" note about a tick-the-box feature that I'm trying to steer you away from replicating so I can get on with the good stuff. Remember this teaser?:

Discussions