Friday, June 27, 2014

Day 305 - Friday Fail: Octopus Pro Edition

This is the fourth post in our series of getting started with 3D printing using the Replicator Mini. Last time we figured out how to print a hollow version of Cute Octopus Says Hello by setting Infill to 0%. This made an octopus model that was enclosed with a hollow center. We'd prefer to print an octopus shell with no base, but there are no settings in the Advanced Options that allow us to remove that base.

With goal in mind, today we'll see what happens if we try to mess with the MakerWare/Desktop slicing profile. If you enjoy having things go wrong and failing, then you're going to love doing this. Sometimes a miracle happens and you find just the right combination of settings to do wonderful things, but most of the time it is a journey of sadness and defeat. Let's go!

Step 1: Create a Profile.
From the Settings menu, press the "Create Profile..." button. A new window will pop up.

Step 2: Choose a Template.
Your custom profile will be a modification of a default template, and you have to choose which template to start with. There is only ONE template that you can choose from the selection list if you are working with a Mini, and it is this one:


I learned the hard way that the other profiles will not work with the Mini. This is one of those times when you have to walk the line. Be obedient and choose the "MakerBot PLA Standard for Replicator Mini" profile. (Note to MakerBot developers: Please make a Mini profile for .3mm/low when you can!)

Step 3: Give your Profile a name.
Make it a descriptive name, if you are planning on making a lot of these. I also recommend taking notes on what you change from the template from each profile. Or, if you don't mind crazy names then you can encode those notes into your Profile name, as I did below.


Step 4: Edit your profile.
Here is a situation where something that caused me and my entire lab a week of confusion and delay can be your good fortune. Or at least a warning to not repeat our mistake.

DO NOT EDIT TWO PROFILES AT THE SAME TIME. 

We used to do that so that we could copy lines of code from one Profile into another. However it turns out that each Profile opens in a mysteriously named "miracle.json" file, and that having two of them open at once will cause one to save on top of the other! This practice caused all of our Profiles, including the default templates, to contain crazy bits of code that were intended for other Profiles. So don't do that. Edit only one Profile at a time. Okay now you can click on "Edit Profile". You'll see something that looks like this:


Don't panic. We are only going to change a few lines. I'll list them along with the code I chose for them in the Profile name:
  • "MyLow" - I like to print at .3mm layer height, but there is currently no "Low" default Profile that works with the Mini, so this is my hack to get .3mm out of the .2mm/Standard default Mini Profile. Find the lines of code for layerHeightMinimum, layerHeightMaximum, and layerHeight, and change them to:

    "layerHeightMinimum": 0.22,
    "layerHeightMaximum": 0.37,
    "layerHeight": 0.30,
  • "cheap" - Filament is money, and for many prints the raft uses as much filament as the model itself. Changing the line below will decrease the number of millimeters that the raft extends past the base of the model from 4mm to 2mm, thereby minimizing the size of the raft. It's a little harder to get the model off the raft with such a small outside border, but it's okay for simple prints.

    "raftOutset": 2,
  • "2-shell" - This will print two shells of filament around each layer of the print. I tried printing the octopus with just one shell and the top of the octopus came out partially open, so two shells it is. This is actually the default value so we don't have to change anything on that line. However, you do have to set the infill to 0% or you'll get two shells around a solid object, which isn't what we want. We were able to set this in the regular Advanced Options yesterday, but when you use a custom Profile you can't use those Options, so we have to set it in the Profile code:

    "numberOfShells": 2,
    "infillDensity": 0.0,
  • "nFyR" - This is my code for "no floor, yes roof". The floor is the base of the octopus that we are trying to remove today. The roof would be the top layer. I wasn't sure whether or not the top of the octopus head counted as a roof or as the shells of the sides, so I kept the roof at the default 0.8 thickness just in case. The floor gets set to 0:

    "floorThickness": 0.0,
    "roofThickness": 0.8,
  • "yRnS" - This is my code for "yes raft, no support". When printing on the blue tape on the Mini platform, a raft keeps the first layer of your print from moving around; without it, the first layer has trouble adhering to the platform. Perhaps more importantly, the raft builds a level surface to print from, and since the Mini has auto-nozzle-height calibration but does not have a way to level the platform so that it sits perfectly horizontally, this raft is essential. Perhaps even more importantly, I'm not sure that the Mini's default Profile works correctly if you turn off the raft. So for now we will keep the default setting and leave the raft on. We'll keep supports off since this model doesn't need supports for overhangs (we'll talk about this later). This is also the default. Even though we aren't changing anything I'll list the relevant lines of code:

    "doRaft": true,
    "doSupport": false,
So really after all that we just changed five lines of code. If you're interested in reading more about what each line in the slicing Profile does, check out the MakerWare/Desktop slicing Profile settings webpage.

Step 5. Save and close your Profile.
Now save the text document you have been modifying, and close it. Do not forget to close it or you may run into the type of problem I mentioned in Step 4.

Step 6. Select your Profile and Print!
Whenever you want to use your custom Profile, you can now select it from the drop-down menu. Select your profile, click "Save Settings", and print your object to see what happens.

So what did all this work get us? Two things: First, we now have an octopus model that is a hollow shell, open at the base. This means that we can put things inside the octopus, like a replaceable LED to make a little octopus nightlight:


Thingiverse link (to the original octopus design): http://www.thingiverse.com/thing:27053
Thingiverse link (to the pre-sliced .makerbot file): http://www.thingiverse.com/thing:405506

The second thing that our custom Profile got us is time and money. Here's the table of time and filament costs from yesterday, with a new row for today's print added at the bottom.


With the "MyLow cheap 2-shell nFyR yRnS" Profile we got our time down to 21 minutes and our filament down to 4.34 grams. That's almost twice as fast as our first print, and instead of 57 cents per octopus, we're down to:

1 cute octopus = 4.34 grams x ($18 / 227grams) = 34 cents.

In addition, we can now print 52 octopuses per Small spool instead of just 31. If we buy filament in the Large spools instead of the more expensive Small spools, we can get this down to:

1 cute octopus = 4.34 grams x ($48 / 907grams) = 23 cents.

That's just over half of the cost of our first octopus print!  It may seem silly to worry about a difference of twenty-five cents, but if you have to print in bulk for a classroom or event, or if you want to print something larger than a little octopus, then the time and money savings won't seem so silly anymore.

Next time: Making the octopus cuter and giving him a purpose.