Introduction: 3D Printable City Maps

There are premade models available to purchase of various cities. I wanted to learn and make my own.

I focused on the area of Detroit where our sports complexes are in relatively close proximity. Comerica Park (Tigers), Ford Field (Lions), Little Caesars Arena (Red Wings and Pistons).

All the modeling tools used were free (no cost, or available as a trial) for basic functionality. Except Visio which I just used for sizing some optional satellite imagery. I used an FDM style printer.

Supplies

Step 1: Retrieve 3D City Data

We will retrieve the 3D city data using CadMapper (free for a limit area size export, 1 square km).

Go to:

https://cadmapper.com/

Click "Get Started Creating a File"

Sign up for a free ID if you don't already have one.

In the settings:

  • Select SketchUp 2015+ as the design program
  • Check "Include Topography" and "Include Buildings"
  • You may opt to put in a false height, for buildings with undefined heights.
  • Adjust the Road Geometry as desired (I just use the default)

Select the area you are interested in. There's a no cost for 1 square km exports, so test that first. In some cases that might be enough. Downtown areas with tall buildings are more interesting than suburbs or areas with short buildings or just flat terrain.

Press the Create button to start generating.

Press the Download button to download a generated zip file that contains the .SKP file.

Extract the files from the downloaded compressed ZIP file.

Optional: instead of using CADMapper, you can try out a SketchUp addin called PlaceMaker. There are fees applied for exporting, but in some areas it appears to have more accurate/detailed LiDar data than CADMapper.

Step 2: Adjust Model in SketchUp

We will use the desktop version of SketchUp to adjust the model.

https://www.sketchup.com/products/sketchup-pro

There's a 30 day trial available (the older versions used used to be free) (I'm using an older version, SketchUp Make 2017)

Run SketchUp, open the downloaded file from CADMAPPER (File -> Open).

On the right side of the application window, expand the Layers section and remove all layers except buildings, topography and Layer0.

Press the “Delete content” icon. The content of the deleted layers is not easily printable, that’s why we’re deleting them. However, you can play around with the content of deleted layers and see if something interesting comes out of it (in my case some of the height data was actually in the parks layer).

Step 3: (Optional) Remove Objects/buildings on the Edge

There may be slivers of buildings on the outside boundaries of the export from CAD mapper.

You can select and delete those from SketchUp. Or just print them as-is, and wait for them to break off on their own.

Step 4: Add Volume/base

The downloaded SKP file will need a volume/base added.

Within the SketchUp desktop application we can add that base easily using a plugin called "eneroth terrain volume".

If not already installed, download from: https://extensions.sketchup.com/extension/71021899-fff7-44e9-87ef-14b79ecbd3b9/eneroth-terrain-volume

In the desktop version of SketchUp... Add extensions using the Window -> Extension Manager. Press the Install Extension button and select the downloaded file from the previous step.

Click anywhere on the 3D model to select it (a yellow box is created around it). Optionally rotate the model so you can see the underside. In the top menu of the app select Extensions menu -> Eneroth Terrain Volume. This creates a solid object under the terrain.

If you want to change the height of the base or buildings, you must explode the model (select the whole model, right mouse button, Explode option), and then the Push / Pull tool to increase or decrease the height of the buildings or the base under the model. (Or you can adjust the height from within the slicer, later).

Step 5: Save/Export the Model in STL Format

If using a more recent version of SketchUp Desktop, you can save directly to STL.

Export the model using File -> Export -> 3D Model.

If using an older version of SketchUp Desktop (such as SketchUp 2017), the STL export isn't available. However, you can save your changes in the SKP format and than open that in the free web version.

https://app.sketchup.com/app?hl=en#

From the free web version you can download as STL.

Step 6: Slice the STL (covert to Gcode)

Use your slicing software of choice to convert the STL to Gcode for printing (I used Cura).

A resolution 0.1mm resolution is recommended, but 0.15mm works good as well. 0.2mm missed some of the finer details.

No Supports should be needed.

Set infill to 10%.

Leave oriented in horizontal position, so it prints flat.

You'll need to scale the tile to fit your print bed and your desired print size. If you're going to design/print a frame, make note of the scaled dimensions.

Slice so the G-Code is generated and save.

Step 7: 3D Print the Gcode

Load the G-code to print (or send out to a service to be printed).

I generally use white PLA (I haven't tried rainbow yet, but a quick change version would likely be needed).

Step 8: (Optional) Add Satellite Imagery

Optionally obtain satellite imagery from Google Earth or Google Maps.

I used Microsoft's Snipping Tool to copy the imagery for the sports venues.

I used a caliper to double check the sizes of the printed versions of the venues.

Using Microsoft Visio I cropped and sized the images match those dimensions.

I then printed them in color, and cut the individual pieces out.

I applied those pieces to the top of the buildings (and parks) using a glue stick (Mod Podge would work as well).

And finally applied a clear coat to the top of the applied paper.

Step 9: (Optional) Create a Frame

Optionally create a frame for the 3D print, for desk or wall display.

I wrote an OpenSCAD file to generate a 3D printable frame with either embossed or raised text. Open MapFrame.scad in OpenSCAD.

Note: Instructables is not letting me upload the SCAD or ZIP file. I'll put it somewhere else to be downloaded.

https://www.dropbox.com/s/f1wv80omb1ditei/MapFrame.scad?dl=0

From the top menu, click "Window" and make sure "Hide Customizer" is NOT checked.

On the right hand side of the screen is "Customizer". Expand the categories, and adjust the parameters as desired.

Input the dimension (width and depth) of the 3D printed map. I suggest adding 1mm to each dimension, to make fitting easier.

Larger map tile in Cura was: 252x168x30

Set in app as 253x169x2mm

Play with the text/font size as desired. Embossed or raised.

For wall hanging smaller tile/frames, the "hanger" is sufficient. For a larger tile/frame, select the "key hole" option instead (otherwise it will not hang level on the wall).

From the top menu, click "Design" and then click "Render". This will generate a better preview, and is required for the exporting step.

From the top menu, click "File", than "Export", next "Export as STL", and finally enter a file name to save the frame STL as. This can than be opened in your slicer to convert to Gcode for printing.

After printing the frame you can attach the map tile to the frame using E6000 or super glue gel.

Maps Challenge

Participated in the
Maps Challenge