Sunday, 4 December 2011

Accurately Carving Uneven Surfaces

How to carve an uneven surface while preserving an existing surface texture.
I've just finished a commemorative plaque for a great local malt whisky bar using an old and uneven lid from a whisky cask. Normally I'd just machine flatten the surface and v-carve it, however that would have spoiled the aged look and feel of the wood. The level of height difference here would have meant some letters being cut too deep and others not cut at all using the original v-cut toolpath.
There's a description below of this project and how to match a CNC toolpath to an uneven surface using by digitizing the surface and wrapping the toolpath to it using some free, open-source plugin MaxScripts I developed (CNC Toolkit and Wrapper)  for 3DS MAX.
The method is equally useful for 4 and 5-axis CNC machining.

My script plugins can be downloaded from my Open-Source Google Project page, here.
More info on these are on here; CNC Toolkit.

Here's the old cask lid complete with around 1/4" of unevenness to its surface.

Here's it finished with a wax polish after carving, with the depth of cut perfectly matched to the surface.

The design layout was done in 3DS MAX, exported as vectors in .AI format, made into a v-cut toolpath and re-imported via my CNC Toolkit back into 3DS MAX.
It now needs to be matched to the uneven surface.
(Currently the toolpath gets imported as a shape so it's necessary to apply the toolpath material in order for it to be recognised as a toolpath. This can be fixed in a later version.)

A digitisation toolpath the size of the cask lid is created from a helix shape which is nice and efficient for this shape instead of using a back-and-forth digitization pattern.
Use the CNC Tookit's 'Digitise/Pecking Toolpath' option and choose 'Digitise' under 'Post Processor Options'

The cask lid is secured to my router and digitized with a cheap touch-probe bought off of ebay.
Mach3 loads and runs the digitising toolpath, saving the XYZ co-ordinates to a CSV file.

The digitised co-ordinates are imported using CNC Toolkit's 'Import CSV' function
The points are made solid by using the Terrain tool.

My old 'Wrapper' script is used to wrap the toolpath to the digitized surface.
Use 'Curve To Surface'

The warp of the surface is clearer in this side view.

The height adjusted toolpath is exported as G-Code and machined on a CNC router I designed and built.

The presentation at The Fiddler's 20th Anniversay Ceilidh.