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)...
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:
- the tool path is not simply an enlarged version of the shape (and that this is true for any shape other than a circle).
- a perpendicular cutting tool can cut out a shape only as thick as the tool is long (although it is possible, in theory, to cut a sheet up to twice that thickness by flipping the sheet over and tracing a mirror of the shape on the back of the sheet).
- a perpendicular cutting tool can cut both concave and convex paths, provided that no concave path is 'tighter' than the diameter of the cutting tool.
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:
- fix the depth of the cutting tool (router bit)
- cut using the tip, rather than the edge, of our cutting tool
- constrain the path of the cutting tool tip to match the cross-sectional shape.
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).
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.
This 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 Quick Guide
- File: I/O actions
- Save SVG Data (Short/Long): Allows you to save the output to an SVG file on your computer. You will receive the following prompt: "The application has requested write access to a file on the machine. Do you want to allow this action?". You may also wish to tick "Always allow this action" to suppress this message in future. 'Save SVG Data (Short)' is always available, and saves a copy of what is on the screen (i.e. a single object only). 'Save SVG Data (Long)', only available if 'Show Router Template' is selected, creates a file more suited to getting laser-cut (i.e. contains a left- and right-handed copy of the router template, plus a left- and right-handed copy of the drilling guide). See Part 2 of this article for more about using the 'Save SVG Data (Long)' option.
- Display: Show/hide actions
- Foil Outline: Show/hide the airfoil outline. Also effects SVG output.
- Router Template: Show/hide the router template outline. Also effects SVG output.
- Guides: Show/hide the guide lines. Also effects SVG output.
- Set: Configuration actions
- Full Chord Span: Set the span (length) of the base airfoil (in millimetres, 30mm minimum).
- Truncate Foil Length To: The 'tail' of the base airfoil tapers to a point, which is not useful in most practical applications (it is too fragile). This parameter allows you to truncate the airfoil to a given length, which results in a square end to the airfoil 'tail' (in millimetres, 30mm minimum, and between 10% and 100% of the full chord span).
- Thickness Ratio: The ratio of the airfoil thickness to the full chord span (in percent of the full chord span, between 1.0 and 100.0). For example, the airfoil NACA0008 has a ratio of 8.0%.
- Absolute Thickness: Instead of specifying a thickness ratio, you can specify the desired thickness of the airfoil and a thickness ratio will be computed for you (in millimetres, resulting in a ratio of between 1% and 100% of the full chord span).
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 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 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 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 is "on"/"selected"; the 'dimensional unit' (right of the 'H'/height box) is set to "mm" (not "px"); and the 'Affect: Stoke' button 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.
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!
¤ Copyright 1999-2023 Chris Molloy ¤ All rights reserved ¤