My school got loaned a 3D Printer to borrow for a few weeks, now we’ve got a minecraft club. I figured I could combine the two!
The cool thing with being able to export Minecraft to a 3D Printer is that children can do it really easily without having to learn a 3D Design program.
I’ve done a bit with 3D Printing before, I bought myself a PrintrBot Plus when the Kickstarter for it was on, however I could never get my prints to work very well. I ended up giving the printer to some friends and decided that 3D Printing wasn’t for me. That was until my school got loaned an UP Mini 3D Printer. I did a test print and it just worked. Glorious.
The version of Minecraft we’re using at school here is called MinecraftEdu. It’s built for schools and gives you greater control over students (and cheaper licences).
This guide is written assuming you’ve got a Mac. Technically it should work on a PC, but you’ll need to do a bit of fiddling when you get to the steps involving Python. The program I’m using to export the prints from Minecraft to the 3D Printer is called Minecraft.print(). It’s a moderately techincal program, but I’ll do step by step instructions to make it work.
Step 1: Build your model
Easy enough, build a model! Take note of a few 3D Printing rules like:
- Overhangs sometimes don’t work out too well. Many printers will build support material to combat this, the one I’m using does it pretty well.
- The base of your model should be relatively solid.
- Floating things just won’t work.
- You can build it absolutely massive in Minecraft then scale it down (or vice versa). But take note of how big your printer can print!
- Slabs print as full size blocks (I learned this one the hard way)
Step 2: Place marker Blocks
The Minecraft.print() program needs to know where in the world your model is, you will need to place 3 blocks in game: A Diamond Block, Gold Block then an Iron Block on top of each other. Ascending or Descending. The Diamond block is the point that counts. Put them at two corners of your model (see picture).
Step 3 (Minecraft Edu only): Save the World
The Minecraft.print() program expects you to put the world where the singleplayer version of Minecraft stores its worlds (note, you don’t need Minecraft installed to even run the script, the world just has to be in the right folder, if the folders don’t exist, just create them as you go).
To go to the following folders, go to Finder and in the Go menu, select “Go to Folder”. Just paste in the following folder (depending on how you made your world)
If you built your world in Single Player, the world will be in here:
If you built your world in the Server version, the world will be in here:
Copy your world (the whole folder) then put it in:
Take note of what your world is called. In my case, I called it PrettyBowWorld
Step 4: The Script!
This is the slightly complicated step. The script is written in Python (it comes preinstalled on all Macs), but you need a couple of extra bits to make it work.
According to the Readme file, the following needs to be installed: python (already installed on Macs), numpy (already installed), pyyaml and pymclevel (included as part of Minecraft.print()). You’ll need to do most of this step in the Terminal (note, you can copy/paste most of the following bits of code).
4a. Open Up Terminal. It’s in Applications -> Utilities -> Terminal.
4b. Enter the following command, this will make a folder on your desktop and go into it (keeping everything in one place):
mkdir ~/Desktop/minecraftPrint && cd ~/Desktop/minecraftPrint
4c. Download Minecraft.Print() and unzip it:
curl -LkSs https://github.com/codys/minecraft.print/archive/master.zip -o minecraftPrint.zip && unzip minecraftPrint.zip && cd minecraft.print-master
4d. Install pyyaml (you’ll need an admin password for this one):
sudo python -m easy_install pyyaml
This one is weird, I ran it once and it came up with a fatal error. Then ran the exact same thing again and it worked fine.
4e. Generate your stl file! Replace “PrettyBowWorld” with the name of your world and outputFile with what you want your file to be called.
python run.py PrettyBowWorld outputFile
You should see a bunch of text fly past including a percentage. If your world is really big, it’ll take longer. It took about a 3 seconds to run with my flat world and my pretty bow.
Note, if you’ve already done the above steps, you can repeat the process and skip a lot by using the following command:
python run.py PrettyBowWorld outputFile
Step 5: Check it out before your print.
Open your .stl file in Meshlab and make sure it looks right! I found the marker blocks seemed to appear on the print, so you can delete them by using the “Select Vertices” option in the tool bar, selecting the little squares left over and then clicking “Delete Vertices” (See picture for where the buttons are, they’re not very well labelled).
Step 6: Print!
This step will depend on what printing software you’re going to use. The steps I’ve got here are for if you’re using an UP2 Mini, the process should be pretty similar though for different printers.
The UP2 Mini program is pretty easy, load your stl file, hit the scale button, change the number to the right of the scale button and push scale again to get it to the right size. I wanted my bow to be ~6cm wide.
Then with the printer attached, go to 3D Print -> Print Preview to work out if there’s any issues it can see with the print and also tell you how much plastic it’s going to use.
The Pretty Bow took ~20minutes to print.