CYBORG CNC: THEORY & TOOL

Short-cut URL for this page: https://chrismolloy.com/naca.

'Cyborg CNC' is the practise of combining your home router table and a set of 2-D laser-cut templates with some manual labour to cut/carve a 3-D object. Cyborg CNC is an alternative to using an expensive 3-D CNC milling machine. The type of object that can be cut using this method is (probably obviously) only a subset of the objects able to be cut with a full CNC machine, but if the shape you're after falls within the subset, Cyborg CNC can be a very cheap way to make 3-D objects using gear you may already have in your home workshop.

In Part 2 of this article, I'm going to use Cyborg CNC to cut a NACA Series 4 airfoil out of timber for use as a centreboard in a dinghy I'm building. To do this, I've put together a free application (see below) that will allow anyone to enter the parameters for any (uncambered) NACA Series 4 airfoil and save the resulting template description for use with a laser-cutting service.

But before we get to the application (tool), it might be beneficial to explain how a 2-D template can be used to carve a 3-D object (theory)...

Theory

Figure 1.A typical 'subtractive' CNC machine cuts a shape by tracing the shape with a cutting tool. Tools with an effective cross-section of zero (e.g. a laser or water cutter) can trace the shape precisely (with a small kerf allowance), but a router-type cutting tool must take its own dimensions into account when tracing out the shape. In the case of the latter, the path traced is almost never the same as the shape being cut.

To illustrate this, take a look at the image on the right. To cut a square in a sheet of material, a perpendicular (to the sheet) cutting tool must trace a 'parallel curve' path (Parallel Curve on Wikipedia / Parallel Curves on Wolfram MathWorld). The centre of the cutting tool (orange) traces the blue path. The 'outside' of the tool traces the red path. The 'inside' of the tool traces the edge of the shape we're trying to cut. It should be noted that:

Figure 2.The above covers the '2-D' cutting of a sheet of material, but what about 3-D? To cut a 3-D shape the cutting tool will typically need to move in three, as opposed to two, dimensions, relative to the material being cut; and the tool will cut with its tip as well as its edge.

There is, however, an intermediary case, which I'm going to refer to as 2.5-D. This is basically the cutting of an object with an entirely convex cross-sectional shape that is extruded into 3-D (a straight extrusion). The reason that this is a special case is that the 2-D cutting method can be adapted to cut a 3-D extrusion of any length (within reason). And you can do this on your home router table, instead of via an expensive CNC machine. To achieve this we need to:

Constraining the cutting tool path can be achieved by securing a 'parallel curve' template to each end of the length of material being cut. The template pair can be laser-cut from a sheet material.

To illustrate this, take a look at the image on the left. To cut an object of arbitrary length with a square cross-section, a 'fixed depth' cutting tool can be used in conjunction with a 'parallel curve' template (red path). The templates on either end of the material block ensure that the cutting tool can never cut within the envelope of the shape being cut. All we need to do is pass the material block over the cutting head as many times as required to get the shape we're after - it is impossible to cut too deeply (although it is, of course, possible to cut less than required, which may require a subsequent pass over the cutting head).

Figure 3.A more interesting application of this is a parallel-sided airfoil (in my case the centreboard of the dinghy I'm building). A commonly used airfoil cross-section is the NACA Series 4 airfoil. The (uncambered) NACA Series 4 airfoil cross-section readily lends itself to our 2.5-D cutting method as it is an entirely convex surface.

Tool

Cutting the leading and trailing edgesThis page is home to a Java Web Start application that will plot any (uncambered) NACA Series 4 airfoil, plus a router template that will facilitate carving the airfoil using your home router table. The application allows you to save the result as an SVG file that is compatible with the Ponoko laser-cutting service. You can also import the SVG file into your favourite vector graphics software, e.g. Inkscape, should you wish to use the airfoil outline for something else.

To get the application, click here:

NACAPlot Screenshots

NACAPlot v1.10 - Airfoil Only
NACAPlot v1.10 - Airfoil Only
NACAPlot v1.10 - Airfoil & Router Template
NACAPlot v1.10 - Airfoil & Router Template
NACAPlot v1.10 - 'Save SVG Data (Long)' sample output.
NACAPlot v1.10 - 'Save SVG Data (Long)' sample output.

NACAPlot Quick Guide

Inkscape and Ponoko

The SVG file produced by the NACAPlot application can be submitted to the Ponoko laser-cutting service, but you'll need to do a little 'post-production' work on the file first. The following is a step-by-step guide to this post-production process using Inkscape (a free vector graphics application). It deals specifically with the 'full' version of the SVG file (i.e. with a pair of router templates plus a pair of drilling templates), in order to cover the most complex case. The process is also applicable to the 'short' version of the SVG file (i.e. with a single router template or airfoil object only).

Open the SVG file in Inkscape and use the 'View\Display mode\Outline' menu command to make the outlines visible (Ponoko requires all lines to be 0.003mm thick, which is too thin to be seen in Inkscape's 'Normal' display mode).
'Select All' (ctrl+A). Ensure all objects remain selected until the end of step 5.
Use the 'Object\Ungroup' menu command (or the Inkscape: Button: Ungroup button) repeatedly until the message "No groups to ungroup in this selection" appears in the status bar at the bottom of the screen.
Use the 'Edit\Clone\Unlink Clone' menu command.
Use the 'Object\Fill and Stroke' menu command to double-check the following settings: Fill = "none" (i.e. 'X', not '?'); Stroke style, Width = "0.003mm" (not pixels).
Drag a selection box (using the Inkscape: Tool: Select tool) around each of the four cutting objects (i.e. the left- and right-handed router template and the left- and right-handed drilling guides) in turn and use the 'Object\Group' menu command (or the Inkscape: Button: Group button) to group the lines that comprise each object. This will make it easier to lay the objects out within the Ponoko Inkscape template.
Save your SVG file.

You are now ready to import you file into a Ponoko Inkscape template. Please see the Ponoko 'Starter Kit: Inkscape' page for a copy of their templates and making guide. Once you've imported your SVG file into a Ponoko Inkscape template, you'll probably need to move things around and/or rotate them to make them fit onto the smallest possible material sheet. I can recommend making your templates/guides out of the 9mm-thick Whiteboard: Double-sided material.

Note: after importing your file into a Ponoko Inkscape template, double check that size has been preserved (as specified by the 'W' property) - I've seen instances where my objects have been shrunk upon import for some reason (I think the Ponoko Inkscape templates muck about with scaling 72dpi to 90dpi for some reason). To correct this ensure that: the 'uniform scaling' button Inkscape: Button: Lock is "on"/"selected"; the 'dimensional unit' (right of the 'H'/height box) is set to "mm" (not "px"); and the 'Affect: Stoke' button Inkscape: Button: Affect: Stroke is "off"/"deselected". For each of the four objects, set the 'W' (width) dimension = the exact router template length (as displayed in the NACAPlot application and/or as captured within the raw SVG file, which can be opened in any text editor). The 'H' (height) dimension will automatically update once you set the 'W' dimension.

In Part 2 of this article I'll demonstrate how to use the templates to cut an uncambered NACA Series 4 extrusion...

Java Web Start 60 Second Guide

"Java Web Start provides a platform-independent, secure, and robust deployment technology. It enables developers to deploy full-featured applications to end-users by making the applications available on a standard Web server. By using any Web browser, end-users can launch the applications and be confident they always have the most-recent version." - from Java Web Start FAQ

Java Web Start is now included in the Java Runtime Environment (JRE), so if you've got Java, you've almost certainly got Java Web Start. If you're not sure, try launching any Java Web Start application - it will set you up if you're not already able to run the application. Note that this 'set up' stage will only happen the first time you run the application - after that you'll be good to go with any future Java Web Start launch.

A few useful links: Java Web Start Home; Java Web Start FAQ; Java Web Start ReadMe.

The easiest way to manage Java Web Start applications (including launching in 'offline' mode) is to use the Java Web Start Viewer. Under Windows, run (or create a batch file to run) the following command: "javaws -viewer". The 'javaws.exe' lives in your 'C:\Windows\System32\' folder.

Afterword

Did this save you time, effort and/or money? Consider making a donation, commensurate with the benefit you've received, to support further development of resources and tools. Donors are encouraged to offer enhancement ideas in the comments area on the PayPal Donations screen...

Thank you for your support!