Giant Laser Cut Map of Milwaukee

I’ve been on a laser cutting kick lately.  In the last two weeks, I made 9 travel coasters, two of which feature neighborhood maps of places I’ve lived.  Though I could have just raster cut these very small coasters, generating the vector version allowed me to create this big map of Milwaukee, Wisconsin!  This wall hanging map is the maximum size of our largest laser cutter: 24″ by 18″!  Boom!

Big_MKE

This map was inspired by a project made by my friend NJStacie a while back.  While she has both the infinite patience and the limitless awesome that allowed her to use an X-acto knife to cut out all the city blocks of Boston from an actual map, I used a laser cutter and software. To create images for my roadtrip coasters, I simply took screen captures of google maps, and processed them into vector files using GIMP and Inkscape.  There are so many extraneous details in google maps (lines for buildings, the text labeling street names, etc), that it was clear I needed an alternate approach for making this map.

Its easy to get a small google map without text labels, check out the url of this page.  My first approach to get more than 512×512 pixels was to use the Google Maps API, which is a toolset to imbed an interactive google map into webpages using Java.  The great thing about it is that the rendering style is completely configurable. Even better, there is a GUI to quickly configure your desired style, and automatically generate the JSON object to pass to the style property of the MapOptions on your webpage.  Instead of investing 10 or 15 minutes reading about how to integrate all these steps, I just created the style, and took a few .png screen captures.  I opened them as layers in GIMP and combined them to create the following grey and black image:

milwaukee_whole

I saved it as a .png, and imported it into Inkscape, selecting Embed Upon Import. I created vector data from this raster image by first selecting Path -> Trace Bitmap, opening a dialog box with many choices.  I really only experimented with the top two import choices, Edge Detect and Brightness Cutoff.  I found that Edge Detect gives two outlines, one of the streets and one of the city blocks.  For this reason, Edge Detect seems to be the best choice to create the widest streets, and therefore the strongest paper cutout.  It required some cleanup though, so I selected Path -> Break Apart, adjusted the Fill and Stroke, and then just deleted all the street outlines (thereby widening the spaces between buildings, which is effectively the streets).  As some of the streets were to narrow to really form one continuous outline, they formed a lot of smaller street segments that I deleted in five or ten minutes of fast and furious clicking.  After all those steps, a vector version of the following image was produced:

vector_lines_of_milwaukee

I did a few test cuts to find a power/speed that cut all the way though some colorful, 98lb, 25″ by 19″ acid-free archival paper I picked up.  The goal is to use enough power to cut though, without using too much power, which widens the kerf (laser cut width), thereby undesirably narrowing the streets.  This ended up being 100% power, with 52% speed. Check out the laser cutter in this real-time (not sped up) video.  Note that one typical problem of having both air assist and super-power fume-removal suction while cutting is that the laser cut bits tend to flip over into the cutting path, potentially resulting in an incomplete cut.  That meant when the laser cutting was complete, I had to carefully punch out the 15 or 20 stubborn city blocks that weren’t completely cut though.

I also cut this design into a coaster, and made one with my old Massachusetts neighborhood too.  Naturally this was a lot of data on a small surface, but the results are pretty good despite the vector cutting time approaching that of the raster cutting time! I cut these at 100% power, 100% speed, like the other coasters.

Map_Coasters_Improved

After I completed all these steps, I learned about a way to access vector map data directly.  The Open Street Map site allows export of .svg vector data just by clicking the share button on the right side of the page!  Even better, one can zoom in to Milwaukee, and press the big green Export button on the upper left to export an .osm database of the visible section of the map.  This OpenStreetMap archive can be opened in Maperative! and a style can be applied to the rendered map.  Maperative has several styles built-in, and I simply edited the google maps-like style to omit all the buildings, and draw all roads, highways, on-ramps, etc in a black with no border.  Maperative can export .svg files, but I found the content of these files are a bit of a wreck.  For example, each different road type is a separate vector path, meaning that there are many separate paths in the file.  Ultimately I found I’d taken the wrong approach, as I should have rendered all the city blocks as black vector outlines, and omitted the roads – as that is what I really need to laser cut.  With a bit more work, using Maperative would likely be a quite quick path from map to laser cutter. However, I abandoned this approach as I’d already created a somewhat reasonable workflow.

Laser Cut Road Trip Coasters: Improved!

I used the Makerspace 60 Watt laser cutter to make coasters that show the path of some road trips I’ve taken.  That way I can enjoy the sweet irony of sitting on my couch enjoying a tasty beverage while having thoughts of travel!  This project was somewhat inspired by mmassie’s OpenPaths Zurich vacation keep sake project.

As I don’t use OpenPaths, I used Google maps to plot the course of past road trips, and simply took screen captures.  I wanted to create vector images with hairline width (0.001″) lines so the laser cutter can make each coaster in 45 seconds instead of 20 minutes. There are many ways to generate vector data using these raster .png images. I chose to semi-manually edit out unnecessary parts of the images using GIMP, and then used Inkscape to extract vector data from the resulting simplified images.  If you’re new to these tools, just search for “Inkscape raster to vector” tutorial videos.  An alternate approach is to just import the raster image into Inkscape, and use the Bézier line tool to trace the important paths.  Yes it is manual, but this alternate method also only takes 5 minutes to complete.

The coasters are cut from 3/16″ 4″ x 24″ solid basswood using fairly standard settings of 100% power, with 100% speed for etching, and 3.5% speed for cutting.

trio_s

I made quite a few coasters, and above is a photo of three of them. The coaster on top is a rail trip through Italy, the second is a 1000 km, 12 day (right hand) drive through Ireland, and the last is a much longer than 12 day road trip through the southwest – note the vertical and horizontal lines are the state borders of NV/NM/CO/UT.

A few days later, after polishing my vector editing skills in Inkscape, I made an improved version of the above three coasters.  I added circles to more clearly highlight each stop, and I etched the names of each stop on the reverse side of each coaster.  One group of raster to vector settings I used in Inkscape resulted in the creation of two sets of (closely spaced) hairlines for the outline of Italy, as shown in the coaster above.  I really liked how distinct the outline of Italy is relative to the path of the trip.  I chose to intentionally create two offset hairlines for the other country or border outlines, using Inkscape’s linked-offset path command.

Check out the new and improved design of the front, with dual country/border outlines and circles to denote the stops:

Three_Coasters_Front_Improved

Check out the reverse sides of these coasters shown below, with names of each stop etched on them. Albuquerque.

Three_Coasters_Back_Improved

Laser Cutter Venting System, Version 5.0

Sometimes solving one problem creates a few new ones! As part of the Laser Cutter Room Reconfiguration, the exhaust system got an upgrade. A new, bigger, more powerful fan meant we needed a new way to control it. The previous system (Version 4.0) was a simple on/off switch. That just wasn’t going to cut it for this industrial grade blower. Tom G., Tony W., myself and others spent the holidays installing this new two-horsepower beast above the ceiling in the Craft Lab. Once it was hung from the roof joists with care, Tom got to work ducting it over to the Laser Cutter Room. Finally, when all the heavy lifting had been done and the motor drive had been wired up, all we needed was an enclosure for the switch.

The request went out on the message board. Pete P., Shane T., and I all expressed interest, but life got in the way and it soon became a matter of whomever got to it first would be the one to make it. I ended up devoting the better part of last weekend to this project (much more time than I anticipated) but I can honestly say I’m pretty happy with the result.

LCEC01

The goal was fairly straight-forward: make an enclosure for the switch Tom had already provided. It was a color-coded, 4-button, mechanical switch that had been wired to provide four settings: OFF, LOW, MEDIUM, and HIGH. The more laser cutters in use, the more air you’d need and the higher the setting you should choose. There’s four duct connections available for the three laser cutters we currently have.

There’s a saying: “Better is the enemy of done.” Truer words have never been spoken in a makerspace.

At first I wanted to build the enclosure out of acrylic. Then I remembered this awesome plastic bending technique that Tony W. and some others told me about. I found a video on the Tested website and got inspired. (If you don’t know about Tested, please go check it out. You’ll thank me later.) Unfortunately, my bends kept breaking and melting through, so after a few hours of tinkering I moved on.

Thankfully, we have a small cache of plastic and metal project enclosures on our our Hack Rack. I managed to find a clear plastic, vandal-proof thermostat guard. It looked workable.

I tried laser cutting it, but the moment I saw the plastic yellow and smoke, I knew there was probably some nasty, toxic stuff in it, so I moved to the CNC router. About an hour later I had my holes cut.

Then came the wiring. Up until this point I had been focused on the control box itself. Now I wanted to add a light!

No, two lights! Yeah!

One light to tell you when everything was off, and another that lit whenever the fan was in use. People could look at the lights from outside the room and instantly know if the fan had been left on. (It should be noted that the new fan, despite being twice as powerful than our last, is actually much quieter. Tom added a homemade muffler to the inlet of the blower and shrouded the whole contraption in 3″ fiberglass batt insulation. The best way to know if the fan is running is to open a slide gate damper and hear air being sucked in.)

OK, I totally got this.

Draw myself a ladder diagram and get out the wire connectors… Remember that I need to isolate the signals from each other so any button doesn’t call for 100% fan… A few more relays… Some testing… and done!

Wait a second… the motor drive doesn’t have a ground for the control signal.

Hmm.

Guess I can’t power it from the drive. I’ll just tie into the drive’s ground. Nope, that didn’t work.

I’ll read the motor drive manual. OK, it has a set of “run status” contacts I can monitor.
….and they’re putting out a steady 0.4 volts DC. That’s enough to light up a single LED! …except, no. It’s not lighting. Doesn’t seem to be any real current.

I’ll just use a transistor! That’s the whole point of a transistor!
….well nothing I tried worked.

I’ll build a voltage multiplier circuit!
….and this isn’t working either.

On Day 3 of this “little project” Ron B. made a comment about using a pressure switch of some kind.

Wait.

We have a Hack Rack full of junk and I know there’s this old bunch of gas furnace parts. It couldn’t be that easy…

LCEC02

Yeah. So, three days (and a few frustrating epiphanies) later, this all came together. Press the beige button, get some air. Press the other buttons, get some more air. Any time there’s suction, the red light comes on. The indicator light is powered by its own 24 volt DC wall pack. The pressure switch has both normally open (N.O.) and normally closed (N.C.) contacts so it would be totally feasible to add another light at some point. The controller could display “OFF” or “SAFE” or whatever as well as “ON” or “FAN IN USE” or whatever. The text is just a red piece of paper with words printed on it, then holes laser-cut out to fit. We can trade it out with different words or graphics if we ever feel the need. I was just glad to have it done, so I called it. Better is the enemy of done, indeed.

LCEC03

You can learn more about the evolution of our laser cutter venting system on our wiki!

Staying Stocked Up

The idea was simple: make something to help keep track of our supplies so we know when we’re running low on the essentials.  After weeks of kicking the idea around and various rough doodles, this project finally took shape.  Two days after the first cut on the laser cutter, it was complete.


Made from multiple layers of acrylic, cardboard, and wood, the “Milwaukee Makerspace Consumables Super Analog Status Board” is a clipboard-sized device with nine sliders installed in enclosed slots.  Sliding the tabs right displays more green to indicate “full” or “lots” and sliding left reveals the red acrylic below to indicate “empty” or “low.”  The user can carry the board around the Space with them as they check on supplies and when done, a large hole centered at the top allows the board to be hung up and displayed on a wall.

The hardware holding the whole thing together can be loosened and the layers disassembled.  The cardboard insert that the text resides on can be swapped out should we decide to change the list of items we want to keep tabs on.  The supplies being tracked currently include:

  • Toilet Paper
  • Paper Towels
  • Hand Soap
  • Welding Gases
  • Welding Wire
  • Propane
  • Soda
  • Duct Tape
  • Painter’s Tape

A digital version may or may not be planned for future release.

Tabletop Game Boxes

With Tabletop Day approaching and my great affinity for complicated rules attached to cardboard (see picture on leftDSCF0722 of what should be my linen closet) I thought it would be the perfect time to work on a few projects to improve some games that I much enjoy. On top of some other, smaller things I decided that the boxes that come with a great majority of card games are kind of worthless. Take for example. Gloom. A fantastic game in which you try to make your family as miserable as possible before killing them off in horrid ways all the time trying to make your opponents family happy so they cannot do the same (I realize I sound crazy but if you come down to the MakerSpace this Saturday I will have it so you should give it a shot. It really is fantastic). While the game is fantastic it came in was one of those that has the bump of cardboard in the middle between the two stacks of cards that is supposedly, in some fantasy universe where cards have different physics than everything else, supposed to keep them separate. This never works and the box usually breaks fairly quickly.

Being utterly fed-up with these boxes I decided to make my own for 3 games. Gloom, Cthulhu Gloom, and GOSU: Tactics. With the first two this also has the added benefit of being able to make the box large enough that I can fit expansions in with the base game and in the case of GOSU it is an opportunity to make a box that better fits sleeved cards and add a 3 turn counter to keep track of the round after the pass (If you have played GOSU you know it can get a little hazy when some people are taking a whole slew of turns per round).

After some playing with Inkscape, cutting out the first one on the laser cutter, realizing I suck at measuring, cutting things again, some gluing, and several layers of shellac later I had a few new boxes.

I had several people ask me how it was that I achieved this look on Baltic birch plywood so I thought I would go over that quickly. TheCGloom Box Open

inner part was just rag stained with some dark Minwax stain (I think it was Red Mahogany) so nothing special there but it adds a nice contrast to the lighter outside I feel. The outside is an amber shellac. I just applied 5-6 coats with a heavy sanding between the first two and a very light sanding between the rest. Nothing too exciting but it really makes this plain wood look pretty decent.