A CNC mill is a computer-controlled cutter that carves a shape out of a solid block. Mine is a small benchtop machine with three axes of motion — left-right, front-back, up-down — and an off-the-shelf PC for a controller.

Two pieces of software stand between a 3D model and that machine. CAM decides the toolpath: the route the spinning cutter takes through the material, and how fast and how deep it goes at every point. A post-processor then translates that route into G-code, the plain list of moves the machine reads. G-code is the only thing the mill ever sees. Everything else is a plan.

CAM is normally something you rent. I wanted it to run on my own hardware, offline, on a machine whose source I can read. It went wrong in a series of specific ways, and those are the part worth writing down. This is an ongoing story; the parts are below, in order, and new ones land as the work does.

A 3D mill simulator showing a rectangular recess being carved into a block of plastic clamped in a vise, the cut path drawn as yellow and magenta ribbons coloured by tool load, with a readout bar below showing cut time, engagement percentages and material removed

My simulator part-way through cutting a rectangular recess. Each ribbon is one pass of the cutter, coloured by how hard it is working. The block is the raw material; the shapes under it are the clamp holding it down, modelled from the real one.

Where it stands

Three parts so far. The software is proven in simulation: the first cutting file passes every check, and no metal has been cut. The next part is the first real cut.

What it’s really about

I didn’t write my own CAM to make better toolpaths than Fusion. I wrote it so I could see the assumptions. Rented software makes its decisions out of sight — how deep is too deep for a cutter to plunge, whether your machine can look up its own tool lengths, whether a number in a dialog is a hard limit or an average. Writing my own put every one of those decisions in front of me.

Most of the wrong ones turned out to be mine.

When the mill finally cuts that coupon, I expect it to find something else I was sure about.

The parts, in order: