A few months ago I decided to make a topographic map of the United States out of wood to hang on my wall using a CNC router and various pieces of free software (USGS data, QGIS, MeshLab) and Autodesk Fusion 360.
The end result is about 7 feet wide, 4 feet tall, and sticks out from the wall by about 3.5 inches. It uses 15 species of wood: oak (red & white), birch, ash, poplar, walnut, maple, butternut, cherry, cedar, mahogany (African and Honduran), pine, and two mystery woods. It was all cut on my homemade CNC router using leftover wood from other projects, and took about 200 hours of total time (generating models, CAM programming, prepping stock, cutting, fitting, and finishing).
You can download the completed files here if you want.
Here are the steps to create the individual steps
The source data was the USGS Global 30 arc-second data (GTOPO30). From EarthExplorer, I downloaded the GeoTIFF files that covered the entire US. The ultimate goal is to get to an STL file that I can program to cut on my CNC, but there are a few steps to get there.
I then used QGIS to load and merge the files together so I had a single image of the United States. The GeoTIFF files use grayscale values to represent elevation. I grabbed state borders from the census bureau’s cartographic boundary shapefiles and loaded those into QGIS as well. Then I used the clipper to split the image up so I had 50 individual files, one for each state.
Transform and Convert
Then, I transformed each state into the desired coordinate system and exported as a .asc file (ArcInfo ASCII Grid). After a lot of research, I settled on the Lambert Conformal Conic projection for the continental United States.
Take into AccuTrans 3D to get an STL file
Convert to 3D
I picked the vertex interval to get to somewhere between 300k and 500k triangles: too many triangles and my computer can’t handle it, too few and the end result looks bad. I dropped things at sea level.
Now you have a 3d surface, but it’s pretty boring, because in reality, even big mountains are small compared to the overall size of the United States.
I had two constraints on scale:
1. The continental US couldn’t be more than about 4′ tall to fit in the living room above the couch.
2. The z-travel on my CNC limits the max height of any state to about 3.5″
Doing the math gets you scale factors. In my case, things are about 4 times “too tall” relative to latitude and longitude. In hindsight, this is too tall — I had a lot of trouble finding stock to make mountains that tall, a hard time cutting them, and they look overly pointy. If I did this again, I’d constrain my max height to about 2″.
After scaling, it looks a lot more interesting.
Now it’s scaled, but it’s still just a surface and not a solid. Extruding makes it a solid.
You want a flat bottom, and since I was setting sea level to a quarter inch (6.35 mm), I used that as my thickness.
When you’ve extruded it, you can save it as an STL. You’re done in AccuTrans 3D now.
Too many triangles
The STL you just generated probably has 300k or more triangles in it. This is great for resolution, but most CAM packages won’t handle that; I’ll be using Autodesk Fusion 360 for this, which caps you at 10,000 faces to convert an imported STL.
I used MeshLab to reduce the complexity of the STLs. After importing the mesh, I used quadratic edge collapse decimation (whatever that means) to simplify the model.
10,000 faces is what we’re going for, and we’d like to maintain the boundary of the shape.
All done! Down under 10,000 faces, so we can export this simplified STL file. You can see we’ve lost some texture, especially in the plains. That’s regrettable, but unavoidable, and you probably can’t cut that much texture anyway.
Import the STL into Fusion 360 and then convert it so you have a body instead of a mesh body. Align the bottom of the state (the underside, if you will) with the Z-plane.
Intersect the borders with the Z-Plane
To make it easy to pick the outline of the state so we can cut it out later, intersect the body with the z-plane. This will get you a sketch that perfectly outlines the state
Usually this sketch is closed, but occasionally there are a couple open segments to close. This is all the modeling work most states require. For a handful of states, some manual manipulation is required, mostly to delete islands.
Into the CAM workspace
Set up your stock, using your preferred coordinate system and stock size. I always use the bottom left corner of the stock as my zero (zeroing the tool on the table).
For most states, I used five operations across three tools. You’ll have to figure out what works best for your machine, available tooling, tolerance for pain, etc., but I settled on the following five operations for most states:
1. A 3D adaptive clearing operation using a ½” router bit at quarter inch levels. This gets rid of most of the material pretty quickly and safely.
2. A 2D contour operation using the same ½” router bit gets as close to the edges as it can, given its size. I constrain the adaptive clearing to the silhouette of the state, even though the stock is square. This operation takes care of removing everything else; no sense is removing it all bit by bit when you can just cut it all off at once.
This is where the intersected sketch made before comes in handy (selecting the contour to cut out).
3. A parallel pass with a ¼” ball nose end mill, ⅛” stepover, leaving 0.100″ of stock. This gets closer than the adaptive clearing operation, reducing stress on the smaller bit used for the upcoming finish pass.
4. A parallel pass with a very long ⅛” ball nose end mill, 0.010″ stepover
5. A final 2D contour pass with a ⅛” bit cleans up what the ½” couldn’t get to
In hindsight, I wish I’d spent more time adjusting the borders of states so that they could be cut with a ⅛” bit. I didn’t (I used the actual state borders) so there was a lot of cleanup where sharp corners of states meet so that the whole map fit together decently.
Simulated and ready to cut
My trusty steed
I tried a lot of different fixturing and hold-down methods. For the first fifteen states or so, I screwed into the blank from the underside using a sacrificial piece of wood or plastic, and then clamped that down to the table.
After a few too many parts were ruined due to those screws not being tight enough, or having gone too far into the state and ruining the part and an end mill, I settled on hot glue as the best way to hold down states. High quality hot glue, liberally applied, held every state rock solid through heavy machining, and it pops right off with a putty knife and a hammer. It tears up the table a little, but it’s sacrificial anyway.
Idaho has been through the first tool, with adaptive clearing and the first contour operation. At this tool change, I generally removed all of the uncut stock to avoid accidentally running into it with a shorter tool later on.
California at the same state:
After the ¼” ball nose parallel roughing pass:
Looking more like the right topography, but way too rough of a step over, and limited detail
Most of the way through the finishing pass with an ⅛” ball nose end mill:
Most of the way through the finishing pass with an ⅛” ball nose end mill:
Let this finish, fit it to the neighboring states, spray with some shellac, and you’re done! Now, just repeat 49 more times. I started the whole thing around Christmas 2015 and finished in mid-April 2016. All told, probably 150 hours of shop time (prepping stock, cutting, fitting, finishing) and 50 hours of computer time (generating STLs, CAM programming) in total.