114 lines
5.7 KiB
Markdown
114 lines
5.7 KiB
Markdown
+++
|
||
title = "A Very Digital Artifact"
|
||
slug = "a-very-digital-artifact"
|
||
date = "2022-11-11"
|
||
[taxonomies]
|
||
tags = ["3dprinting", "CAD", "GIS", "CNC", "art", "sundries", "proclamation"]
|
||
+++
|
||
|
||
![A plywood slab carved with CNC into a topographic representation of California][main_image]
|
||
|
||
# A birthday wish
|
||
|
||
Last summer, I wanted to get my wife something nice for her birthday. For many years, she had
|
||
expressed an occasional and casual desire for a topographic carving of the state of California,
|
||
where we live, and I thought it might be something I could figure out how to get her. In the end,
|
||
after many dozens of hours of work, five weeks, and several hundred dollars paid to a professional
|
||
CNC machine shop, I had the artifact shown in the picture above. This is the story of its creation.
|
||
|
||
# First steps
|
||
|
||
Before you ask, I did not do a ton of research before embarking on this. As I write this, about six
|
||
months later, it only now occurred to me to do a basic search for an actual physical thing I could
|
||
buy, and luckily it seems that CNC-carved wooden relief maps of the whole state are not trivially
|
||
easy to come by, so, *phew!*
|
||
|
||
No, my first step was to see if there were any shops in the area that could carve something out of
|
||
nice plywood, about a week before the intended recipient's birthday. I found one that was less than
|
||
ten minutes away, and filled out their web contact form. They had a field for material, and I said,
|
||
"some nice plywood between 0.75 and 1.0 inches thick or similar" (I didn't know exactly what was
|
||
available and wanted to give broad acceptable parameters), and under "project description", I wrote,
|
||
|
||
> A relief map of California, carved from wood. Height exaggerated enough
|
||
to visibly discern the Santa Monica mountains. I can provide an STL file if needed.
|
||
|
||
For some [incorrect] reason that I only later examined, I just sort of assumed that the shop would
|
||
have a library of shapes available for instantiating into whatever material medium you might
|
||
need. But just in case, I included that hedge about being able to provide an STL file. Needless to
|
||
say, that was a bluff.
|
||
|
||
![the programmer's creed: we do these things not because they are easy, but because we thought they
|
||
were going to be easy -- from twitter user @unoservix, 2016-08-05][programmers_creed]
|
||
*<center><sup><sub>me, every time</sub></sup></center>*
|
||
|
||
Also needless to say, my bluff was called almost immediately, and I had the following exchange with the
|
||
shop:
|
||
|
||
> *CNC Shop*: STL can work but I can’t manipulate it, which could save some money. If possible can it
|
||
>be exported to an .igs or .iges or .stp format?
|
||
>
|
||
> *Me*: Yeah, STP should be no problem. Can you give a rough estimate of the cost for 1x2-foot relief carving?
|
||
>
|
||
> *Shop*: Without seeing the drawings, I can’t give even a close price but in the past they range from
|
||
>a few hundred dollars to several thousand dollars.
|
||
>
|
||
> *Me*: That's totally fair! I'll get you some files in a few days.
|
||
|
||
"I'll get you some files in a few days," was an even harder lean into the bluff; my next
|
||
communication with the shop was nearly four weeks later. But that's getting ahead of things.
|
||
|
||
# Meshes and solid bodies
|
||
|
||
First off, let's talk about file formats and how to represent shapes with a
|
||
computer.[^math-computers] I said I could provide an *STL
|
||
file*. [STL](https://en.wikipedia.org/wiki/STL_(file_format)) is a pretty bare-bones format that
|
||
describes the outside surface of a shape as a set of many, many triangles, each of which is
|
||
described by three 3D points, forming a "mesh" in the shape of the thing you're modeling. This
|
||
format is popular with 3D printers, which is how I became familiar with it.
|
||
|
||
This format is simple to implement and easy for a computer to read, but if you have a model in that
|
||
format that you need to manipulate, you won't have a good time. In order to actually do things like
|
||
change the shape of the model, it needs to be converted into a CAD program's native representation
|
||
of a "solid body", which is pretty much what it sounds like: a shape made of a finite volume of
|
||
"stuff", instead of an infinitesimally thin shell enclosing an empty volume, which is what the mesh
|
||
is.
|
||
|
||
In order for the CAD program to convert a mesh into a solid body, the mesh must be *manifold*,
|
||
meaning, no missing faces (triangles), and with a clearly-defined interior and exterior (all
|
||
triangles are facing in one direction relative to their interior). When there are no missing faces,
|
||
it's called "water tight". You can still have "holes" in a mesh, like if you have a model of a
|
||
donut, but the surface of the donut can't have any missing faces.
|
||
|
||
The CNC shop had requested a model in a format called
|
||
[ST**P**](https://www.fastradius.com/resources/everything-you-need-to-know-about-step-files/). `.stp`
|
||
is the extension for a "STEP" file; STEP is supposed to be short for "standard for the exchange of
|
||
product data", so someone was playing pretty fast and loose with their initialisms, but I
|
||
digress. But the main thing about STEP files is that CAD programs can really easily convert them
|
||
into their native internal solid body representation, which allows easy manipulation.
|
||
|
||
But so far, I had nothing at all. Time to get some data and see if I can turn it into a model.
|
||
|
||
# Public data
|
||
|
||
|
||
|
||
## From space?
|
||
|
||
## Thanks, California state!
|
||
|
||
## In Australia, it's pronounced "g'dal"
|
||
|
||
## Give it a good smear
|
||
|
||
# Test prints
|
||
|
||
# Final cut
|
||
|
||
# Thanks
|
||
|
||
[main_image]: PXL_20220723_214758454.jpg "A plywood slab carved with CNC into a topographic representation of California"
|
||
|
||
[programmers_creed]: programmers_creed.jpg "jfk overlaid with the programmer's creed: we do these things not because they are easy, but because we thought they were going to be easy"
|
||
|
||
[^math-computers]: I'm pretty sure this is more "represent shapes with math" than with a computer, but
|
||
the computer is just helping us do the math and it's more relatable.
|