Monday, October 3, 2016

Optimizing prints (aka the BB-8 cookie cutter)

There's a lot to catch up on - I print about 20-50 hours a week, and there's so much information to share.

Recently a friend asked for a BB-8 cookie cutter. Yes, designing from scratch is awesome. If I were to print only things I designed...egads. I found a nice one with not TOO much heavy design on Thingiverse. It turns out to be 5" tall and 4" wide...a little big for my tastes in cookie size. (Incidently, it allowed commercial use - Etsy had several of these...$6-$7 apiece for 60 cents of plastic. Maybe more cost-of-goods, depending on the maker's cost of plastic...I had gotten some random PETG filament from makergeek for $18/kg.)

Adding a link to Imgur for the next bit.

I remixed the cookie cutter in Blender to give it a lip to help pull it off the cookie dough. In the Cura slicer software, I scaled it from 100% down to 50%. It looked good in Cura - print! It lost lines...but..why? Well, print it at 60% - more lines back, but not complete.

I could have continued to print over and over again, until all of the lines came back with the object creeping back up in size. At this point, we can assume that the line is just too thin to print occasionally. (This was a learning moment for me from here on.) One - how do we keep a smaller size, and two - how do we identify a bad print before we waste time and plastic?

I'll start with identifying bad prints. Cura has something call the LAYER mode in the upper right corner (where it starts with NORMAL). Right there, I can see where items disappear. Now we have that nailed down, we can look at possible fixes to the object file before prints...great. Incidentally, 90% seemed to have all of the lines back - it was too big of a cookie though.

Next, getting a small size, we'd run into the same situation if we just did scaling in Blender instead of Cura. There's a useful plug-in for Blender called "3D Printing", already included...you just need to turn it on. (It'll show up as a tab on the left-hand side, if you have an object loaded in Blender.)

In Blender - select the object, go to edit view, and de-select all. ("a" selects all or deselects all.) Then click the "Check All" box in the 3D Printing tab. Down below, you'll notice the Output box is now full of information. (If you want to fully duplicate my experience, download the cookie cutter, scale it to 70% in Blender, then do the above to see the output.)



Let's make another change before we go further - Thickness is the size of your nozzle. My Lulzbot Mini has a stock nozzle of 0.5 mm. I'm running the standard blender unit scaling, which means 1 blender unit = 1 mm. If I set the Thickness at .7 - the Output display will show a lot of Thin Faces. If your nozzle/Thickness is .3mm, you'll have much LESS for Thin Faces. This makes sense - a bigger opening = bigger lines; small opening = thinner lines.

Depending on your nozzle and calibration accuracy - you might consider changing the thickness setting. I think I was fortunate starting out with a Lulzbot Mini for my first experience into printing (no calibration necessary, even after a year).

At .5 Thickness, it shows me more thin faces than I need to be concerned about. I only care about the walls that are too thin - not the bases or tops. Click on the "Thin Faces" box in output - it will select all of the thin faces. Fix the walls that weren't printing, Check All again, fix walls...then check the new object file in Cura. It's possible that you'll need to go back to fix walls before printing, but I had good fortune. Printing it at 70% worked out great - my first run after my adjustments had no errors.

Below is the image of the "thin faces" I mentioned:


Good luck!

EDIT:
As a follow-up to this article, the current release of Blender has the 3D printing information as part of the object information ("n" when you're selecting the object). I haven't upgraded yet, but moving from a plug-in to part of how Blender is used is a great acknowledgment on how Blender is developing. I've been using 2.76, I think 2.78 has this feature but is buggy in other respects.