torsdag 5. januar 2012

Tutorial - Printing from Minecraft with Mineways

Mineways.com has been getting a lot of well deserved attention lately. In short it's an excellent Minecraft export tool, tailored towards Shapeways printing. While us DIY enthusiasts can't do full colour prints (yet), Mineways is still an excellent tool for exporting models for home 3D printing, and it's quite user friendly compared to certain other attempts.

Here's a few videos where I show my first attempt to do a large print of a landscape, and then a smaller print. If you have some experience with WorldEdit and 3D printing, it should be pretty straight forward to follow.



This post is a detailed tutorial on how to use Mineways to export printable stl files for a RepRap or derivative machines. The details are from a large-ish landscape model, but the principle is the same for all types of exports.


Here's the steps we're going through:
  1. Prepare area to export in Minecraft, with the help of WorldEdit.
  2. Use Mineways and export from a local world file to .obj.
  3. Review and export to .stl with Wings3d.
  4. Genretate gcode with slic3r.
  5. Final result.
  6. Exporting from online multiplayer?
Now for more details.

Update 01.06.2012: Fixed the scaling problem with help from Eric.
Update 01.07.2012: Fixed some of the abundant spelling errors, and added a video with a smaller object printed at 1block=1cm.
Update 01.08.2012: Added info on the new scaling factor from v1.06.

1. Prepare for export in Minecraft

While SLS printers have built in support and colours, and their commercial software might import all sorts of damaged stl files, our software is a bit more picky. On the other hand we can print huge (or small) models for a mere fraction of the cost! After a lot of trial and error I find the sure-fire way is to prepare the model ingame before export. For small buildings it's just a matter to build it so it's printable, and support structure in skeinforge could be of great help here. I haven't tried this yet though, so please comment if you do.

If you're going to print a larger landscape like I did in the video though, you really need a tool like WorldEdit (the link takes you to single player commands, which includes WorldEdit). Mineways only work if you have direct access to the world file, so this is all done locally in single player. Jump to step 6 for how to export from a server.

As you can see in the video I alter the world in a few ways. I won't go into detail with how to use it, but if you haven't used WorldEdit before, please be careful so you don't mess up your entire world! Backup is essential here! I take no responsibility when you trash your kids masterpiece and crash your server.

  • The red wool makes for a solid ground plane, do this first.
  • By replacing all blocks with gravel, you ensure there are no pockets of air in the model. Though if there are a lot of tunnels, this does cost you detail and definition of the landscape. It's the simplest way to make a manifold model without any overhangs though. With a larger selection it does lag a bit, in case you didn't notice.
  • Use //smooth, or //brush smooth 6 to remove any jagged edges.
  • Now we know there's no hidden tunnels, unwanted overhangs or bad geometry in the model, and we can go back and tweak the landscape or build other structures.

Preview the print by changing to your filament colour.

2. Export to .obj with Mineways


For this step you just need to download and start up Mineways. There's a nice detailed tutorial on that page on how to use it, including videos. Much of it doesn't apply to us though, if we do the proper work ingame first.


Now, why not export directly to .stl you ask? At first I had some trouble with the scaling, until Eric himself explained that Mineways by default exports stl in metre scale. As of Mineways 1.06, there is now a "Model's units" dropbox. We'd like to set it to millimetres, and then use "Make each block X mm high" to set the scale; set it to 10mm and each block will be 1cm when printed, and so forth. For the printed landscape I used 1block=1mm.

I still like to use wings3d to review the mesh first, but it's not really needed with simple exports. It does makes it possible to do some edits that are difficult/impossible to do in Minecraft though.

Here's a few screenshots from mineways, notice the red wool is clearly visible. When you right-click to select, be sure to start at the red wool as it sets the bottom height to export from.
Now where was I...
All ready to go.
When you have marked the correct area, select "Save Model for 3D printing" and choose "Wavefront Obj, without material preview (*.obj)" as the filetype. There's a few settings that are of interest to us, and are different from the defaults (v1.04).
  • Export no materials (we don't need those).
  • 'Make Z up' not checked.
  • 'Connect parts sharing an edge', 'connect corner tips' and 'weld all shared edges'. All checked.
  • 'Hollow out bottom of model' not checked.
The export dialogue I used.

3. Preview and export to .stl with Wings3D

There's a lot of different 3D programs that would do this, I chose Wings3D as it imports .obj and export .stl natively, while handling huge dense meshes without a hitch. The .stl export for large files is slow though. Please comment if you made this work with a different program, like Blender.

I you want to change the scale, you can do it at this stage like I did. As you see in the screenshot below, my imported model was 1.37 wings unit across. That would make the model 1.37mm wide, which is yet a bit too small for the average DIY printer.

Notice the size. A bit small, no?
Select the model and scale it by the amount you want. Optimally you'd scale the model so each block suits your slicing layer height, but it's not noticeable on the scale I printed this.

Now, that's better.
One thing I didn't do, and that could've saved some print time, was to manual hollow out some of the big middle bits. In a mesh modeller you are not bound by the square building blocks, and can make all sort of support structures. I'll do some more tests of this in the future, but with custom made snap-off support we can print anything.

Export the file to .stl. Notice this will make Wings3D seem to hang, but as long as there's memory activity in task manager it should be good. I didn't time it, but I'm guessing it took about 10 minutes to export a file this big.

4. Generate gcode with Slic3r

I'm sure you've heard about the excellent gcode generator Slic3r, and I can't recommend it highly enough. Sure it will take a few days of tinkering to get to know it, but once you do it's a perfectly good alternative to sfact/skeinforge. And it's fast, super fast. A 5MB file in under 3 minutes you say? Yes, yes it can.

I don't even want to think about how long skeinforge would take.

I've included some screenshots of my settings, though they are very much machine and model dependent. I'm using an Arcol 0.35mm hot end and Marlin firmware. I normally print at 160-170C, but bumped it up to 190C as it's a huge, long print. The top did suffer and melt a bit though.

Because the Minecraft world is explicable to come with a lot of 90 degree angles, and because of acceleration, the full perimeter speed is only reached on the straights. Where you really catch up on speed on this type of model is the infill, and you might be better off turning the perimeter speed down if your scale is this small.

Some settings.
More settings.
Be sure to preview the gcode before you print. Pronterface is an excellent choice, and it also comes with a good estimate on time and filament used.
0.2 infill works fine for this size of model.
The y size is wrong, but the print duration was close. 

5. Final result

Here's the 14x8.5x6cm result after 3h 55m. The printer behaved perfectly and didn't miss a single step once. The print weighs in at 105grams, and with the cost of 25-30$/kg I paid, would total at less than ~3$. Not bad compared to Shapeway prices, no?

You can see the individual blocks, though they are a bit rounded off, which is natural at this size. One block is 1mm wide on the model, but single block have swelled a bit and are closer to ~1.2-1.5mm in reality.

A bit difficult to photograph this semi-translucent PLA.

That's a nice world you've got there.... No really, I like it.
You can find the model on thingiverse if you want to have a look at it. The creeper keychain is also shared.

6. Exporting from online multiplayer? 

Now, I'm sure you are as amazed as me about the creativity people show in Minecraft. On the server I play on the amount of awesome buildings is utterly insane. It's Norwegian only, though feel free to drop by to say hello and have a look around at hw.minecraft.no.

What I wanted was to print some of these works of art. The problem with Mineways is you can only export from a local world, thus you can't use it online unless you're an admin with full root access to the server. The idea behind my export script was based on schematic files saved with WorldEdit, as the server admins would only need to send over a single small file. And as a bonus you wouldn't have to mess around locating the area to print in Mineways, which would be quite cumbersome on our 12000x12000 map.

While Mineways doesn't import schematics (yet?), there is a simple workaround. You need to run a bukkit server with WorldEdit for this to work. If you host a server, you ought to be able to figure out installation by yourself. ;-)

  1. Select the area online with WorldEdit and save it to schematic.
  2. Fish out schematic file from server folder.
  3. Copy schematic file to local folder. ("%appdata%/.minecraft/schematics" on Win7)
  4. Load and paste the schematic into a local world.
  5. Use Mineways to export, as per the instructions above.

That's it for now, hope it was of some use to you. Feel free to comment and ask any questions you might have.

Watch this spot for more Minecraft related RepRap printing.
-Nudel