CNC height map creation process

I’ve had some questions on how to set the parameters in ImagetoGcode, an application built into LinuxCNC, the control software used for some (soon to be all 🙂 ) CNC routers at the Hack Factory. There are lots of ways you can do this, and your material, application, and bit size all play a role in getting the settings correct. I’ve been cutting a series of lithophanes on my router over the last month or so, so I’ll be going over how I determine what settings to use for them.
For these lithophanes I have a set finish size in mind which is 5″ tall max, and a format of ethier 5″ x 5″ or 5″ x 7″. I know from experience that in Corian, I want to have about an 1/8″ or a little less of depth variation for the images, and I want to use a pixel size of about .005, which is the same size as my bit.

Here’s the ImagetoGcode screen with the settings for one of the planet lithophanes I’ve created.

Looking at the details of the image, which I have scale to be optimized for my 5″ cut size, we see it is 1000 x 995 pixels. knowing I want a 5″ finished size and that my tool is .005″ and that is also a good pixel size, we can set our settings.

Image Size

The math is for 1000 pixels at .005″ per pixel, gives an image of exactly 5″ across and nearly 5″ tall. With high res images, you will generally want to scale the image down in Gimp or something similar to get the pixel count for your intended print size to be in the sweet spot for the tool you have. I’ve found that for a .005″ Vee bit cutter, a .005″ pixel size works well, this is not the case with other types of machining, and you’ll need to experiment. I strongly suggest Vee bits for small pixel sizes, especially in Corian or other solid surface materials, a ball nose end mill seems like a great idea until you learn how incredibly fragile they are at that size. You’ll also want to run with the highest feed rates your machine can sustain, because rastering at .005″ is always a long process. These are the bits I use, I highly recommend them.

Here’s a brief run down on the settings and why I chose them, again, the size application, material and bit all impact the “right” settings for a given cut.

Units G20 inch – cause this is Merica, ( go with your machines configured units )
Invert – because when backlighting through you want the dark stuff thicker and vice versa
Normalize – Uses, or tries to use the full 8 bit range to go from Black to white, you can see this result in the image above.
Tolerance – I have a love hate relationship with this one, it allows you to specify how exactly you want the tool paths to follow the variation in the image, a bigger tolerance means faster cutting (less Z movement) but also blurs or smears the details together by rounding the tool paths, I can’t bring myself to set it to more than .0015″ for images of this size, with this tool, etc, etc, I’ve spent a lot of time messing with this setting, get a test strip of your image, and some cheap material or scrap section, and mess with this, so you understand. Like the matrix, I can’t tell you what it is, you need to experience it.
Pixel – should be apparent by now, the rastering step or size to cut the image at. How big each pixel will be, I’ve found for lithophanes in Corian, with a .005″ or .01″ bit tip, that .004 to .0055 or so is where I want to be, less and you are wasting time without getting additional detail, more and the resolution seems too low, and it will get pixelly. (in my opinion)
Feed Rate – how fast you go, whatever your machine can take
Plunge Rate – Likewise
Spindle Speed – Not relevant for me, 15,000+ RPMs I’d suggest
Scan Pattern – how to raster, I haven’t messed with the alternatives, but some images may benefit from other optiions
Scan Direction – If you can alternate it is a big speed win, backlash needs to be very minimal, I use backlash compensation in LinuxCNC, and am ecstatic it is sufficient to run alternating, I couldn’t alternate when I started and had some 20+ hour cuts.
Depth (units) – the maximum variation in height, difference between black and white to use, material dependent, and impacts speed, and the feed rate you can run, Corian is hard, and big plunges create large impact forces, your light source matters a great deal for this too, this is what I generally use in 1/4″ thick Corian. I know others online go deeper.
Step over (pixels) – How many pixels to step over for each pass, with a .005″ pixel, it is .005″. Only allows whole numbers which seems silly, but I haven’t found too limiting thus far.
Tool Diameter – At the tool tip, and again in your machines units, I’ve used .005 and .01 30 degree Vee bits only for the last few years.
Saftey Height – How high to retract, does this at the end of each pass, very, very low is what you want, your machine bed needs to be dead flat for this, but if you want the cut to be any good, it needs to be dead flat anyway.
Tool type – the tool geometry, choose what you are using.
Lace bounding and roughing – I don’t use them, I make look at contact angle as a fix for Saturns rings, but haven’t yet.

This is getting long….Hopefully this is helpful, Come by on Sunday afternoons (2:00 – ?) if you want to see this in action, or have hands on type questions. I’ll post some shots of the planet series cuts to date in another post.


Leave a Reply