Home       About Me       Contact       Downloads       Part 90    Part 92   

Part 91: 3D Printing

February 11, 2014

At the end of November, I had played with this Construcive Solid Geometry package called Carve. I was trying to build watertight, manifold models I could submit to a 3D printer.

In addition to being extremely slow, the package kept throwing exceptions at me whenever my model faces exactly touched. Looking at the source, it seemed as if this was a coding error. There's a switch statement handling the various intersection cases, and the last case simply drops through into the default, where it throws an exception. Adding a "break" statement seemed to improve things, and I could use the package for some projects.

Six Wheels!

I first took the 6-wheeled ATV I had designed as a standin for the game vehicles and tried to print that on Shapeways. I wanted the wheels to turn, so I designed pegs on each axle, with separate wheels which I thought would snap on.

Unfortunately, I had made the walls fairly thick and when it came time to print this, at 100 mm long, it was too expensive. Shapeways charges by the volume of material used. I think this is actually to reflect the printing time in the machine, not the actual cost of the plastic. At US $1.40 per cubic centimeter, it really adds up fast.

Since I didn't want to pay $50 for a test piece, I just scaled it all down without rechecking the size of all the details. This caused the model to be rejected before printing and I had to try again. Finally, I submitted it in two different sizes with two different materials. Shapeways has a variety of materials to choose from, so I tried both their "Strong and Flexible Plastic" and "Full Color Sandstone." But the sandstone version was rejected a second time due to thin walls.

It turns out that Shapeways bills your credit card as soon as they accept the order. Then if it's rejected, they give you store credit. I didn't notice this and piled up a lot of charges before I saw the line for "Apply Credit" when you check out. Another problem is that if you submit two pieces in a single order, and one is rejected, you end up paying separate shipping charges for each piece. I complained about this, and Shapeways gave me credit for one shipping charge.

Only the small (40 mm) plastic version of the car survived their review process. After a few days, it arrived via UPS.

I had imagined the plastic as the shiny, brittle stuff most toys are made of. In fact, it's kind of rough-textured and feels more like soapstone. You can scrape material off fairly easily. The edges of the car body were pretty clean, but the holes in the wheels weren't. I had to scrape out some material to get the wheels on. The axle pegs didn't work at all -- the peg didn't seem to flex, and none of the gaps I had designed in were large enough. I had to force the wheels on, and they don't turn.

At Christmas, I saw an ad for an item from designer Michiel Cornelissen that made me realize there was another way.

If you look closely at the top of the swing in the picture, you can see that this is printed all in one piece. Since they are using Laser sintering, there is supporting material around the piece (the plastic dust which has not been fused.) So you can print the bird and swing with a gap around the top bar, threaded through the hole. When the support material is blown away, you get a moving swing within the cage, without having to do any assembly.

I could do the same thing with the car wheels, if I printed them with the right gaps. If the model were a bit more interesting, I'd probably go ahead and try this. As it is, I've spent too much money already (see below...)

Flying Saucer

I continued by designing a printable version of my flying saucer. This would have been difficult to do without a CSG package. The legs are all overlapping spheres. In my original model, I just add all the triangles, and let the Z buffer take care of things. For printing, the triangles of the model can't intersect. With the CSG package I can create the spheres and union them together, getting a mesh of just the outside triangles.

I wanted this model in color, so I used the "Full Color Sandstone" material. It arrived and is what I specified. I don't really like it though, for a few reasons. One is that the colors on the model are pretty washed out. In this picture, you can barely tell that it's green.

The main problem is that when I designed the thing, I was rendering it as if the avatar is much smaller than the saucer. Printed as a desk toy and seen from above, it's kind of boring. You can't see the interior (which isn't lit, of course) and you can't see all of the legs, since they don't extend past the disk of the saucer.

I also don't like the sandstone material. It's very gritty and really does feel like something made of coarse sand. Here's a detail image:

On the other hand, the details are pretty sharp (this model is 100 mm diameter) and it is what I designed.

Hex Meshes

Then I got more ambitious and wanted to print some of the hexagonal meshes I've been using in my game code. The simplest way to do this would be to union lots of rectangular beams, but the CSG package is just too slow for that. Instead, I had to create a triangle list from my mesh code and then feed it to the CSG package. To my surprise, the package recognized it as a closed manifold shape without complaint.

I'm generating this "Vase" shape by rotating a spline around the Y axis, and then projecting all the mesh coordinates onto that shape. It's not fine art, but it's better looking than I expected. It's also somthing I could never make by hand.

The object above was intended to be a stand for the flying saucer to sit on. I thought it would look more interesting at eye level. This is 6" (147 mm) high and 4" (100 mm) across. It's US $25 to print in plastic. On the one hand, that's ridiculous for a bit of plastic. On the other hand, it's a detailed, fairly large model. If I can print this for a reasonable price, I can print a lot of other intricate models.

Once I had this code, I wanted to do something else with the hex mesh. I tried a bunch of experiments, from small odd shapes to a large case mod for my computer, but none of them struck me as worth the cost to print. Finally, I remembered the topographic map experiments I did in Part 87. Looking around for something self-contained, I decided on Hawaii.

I would like to show you the printed versions of these, but no such luck. I designed these in early December, but both have been rejected for thin walls three times. On the Vase model, I had ordered it polished. My beams are 1.35 mm across, and their documentation says 0.9 mm is the limit for polished. Despite that, I got back this email:

Attempted to print twice and failed. The bottom structure of this model 
continues to break off in polishing. Please considering thickening the short 
and thin sections at the bottom of the bottle so they can survive this process, 
or order a non-polishing material. 

The Hawaii model is in sandstone again, which requires 2 mm thick on supported walls. Apparently that's not enough when building a mesh like this though:

We have attempted to print this model three times, but cannot clean it for 
shipping. The wireframe structure is very weak in this material's "green state" 
out of the printer and crumbles very easily. Please thicken the wires to a 
recommended 3.0mm. This will give a stronger design that can be produced and 
shipped with less of a chance for breakages. 
The problem with a 3 mm beam is that my code starts to mess up the triangle list, since the mesh was pretty dense around the curve of the stem (I initially used the same "vase" shape under the Hawaii model.) The version you see above has been simplified and uses wider beams. I don't like it as much, but hopefully this one will print. It's currently scheduled for production on January 12.

The Luggage

I was still thinking I'd like some kind of case mod for my computer, but none of the high-tech looks with spline-shaped hex meshes was doing it for me. I was also getting really high price estimates from Shapeways on objects that large (10 inches across.) So I dropped my sights to just doing an enclosure for my external backup hard drive.

At some point over the holiday, I ran into a reference to Terry Pratchett's Discworld series. In the first books, one of the main characters is The Luggage. In The Colour of Magic, the Luggage is described in a few places:

Hrun had already pushed Twoflower away and was reaching for the Luggage... which sprouted legs, backed away, and raised its lid threateningly. In the uncertain light Rincewind thought he could see rows of enormous teeth, white as bleached beech-wood.


A raven swooped down from its perch in the rafters and dived at the wizard, talons open and gleaming. It didn't make it. At about the halfway point the Luggage leapt from its bed of splinters, gaped briefly in midair, and snapped shut. It landed lightly. Rincewind saw its lid open again, slightly. Just far enough for a tongue, large as a palm leaf, red as mahogany, to lick up a few errant feathers.

I thought this was something I could model. I could build a simple chest, get some feet and teeth off the net, and I'd be done. The result is shown above. It was a lot more work than I expected. One problem you can see in the image. At the bottom-right-front of the chest, one of the rivets has a streak of color coming out of it.

That's because the Carve CSG package is not handling texture coordinates correctly. It sometimes introduces a new point and since you have not specified a texture coordinate (cannot specify one!), it gives it the coordinate (0,0). Then it interpolates to neighbors and makes a mess. Despite lots of fooling around, I couldn't get it to stop doing this.

I also had a lot of design issues. As I've said repeatedly, I'm not an artist. I do these models with code, and then endlessly tweak angles and proportions until it looks right. Something an artist could do in an hour takes me days. I'm fairly happy with this, but still haven't been able to print it.

The external disk drive with add-on USB board, is about 4" by 7". With the teeth, tongue, lid, etc. of the model, and some air space around the drive, it came out something like 5" wide, 5" tall, and 8" long. The first Shapeways estimate was nearly $400.

So I gave up on a hard drive enclosure and looked for something smaller. I have an OUYA Android game system which fits in a 3" cube. See OUYA Teardown. I resized the model to fit this shape. Unfortunately, even with dangerously thin walls, the model is still $105, just a bit more than the OUYA itself! I haven't been able to bring myself to print this.

To the Library!

As I mentioned at the end of the last post, the local public library has two MakerBot Replicator printers. I read what I could about design rules and reworked the model to comply. This mostly meant splitting it up into chunks without overhangs.

I really wasn't sure how much of an overhang was a problem. The rivets on the luggage model are 1.5 mm in radius. Was that too much? I couldn't see how to add any supports there that wouldn't be a pain in the neck to remove. I didn't even know exactly what a support should look like.

Also, there's a gap under the tongue that looked to be a problem too. I was thinking of doing a bed of coins, then inserting the teeth and tongue, as if they had risen from under the coins. But, by this time, I was sick of the whole thing.

The library "Design Spot" was closed a few days over the holidays, so I only got around to visiting on the 4th. They have a sign up sheet, and it's first-come-first-served. Fortunately, only one person was waiting when I got there, and he let me cut in line.

The whole model is six chunks, and the library also limits people to one print per day. Since the printers are only available three days a week (with a few "furlough" closures), this means at least a couple of weeks of waiting around over there to print the model. I suppose I could take a laptop and work on the project.

Unfortunately, when we loaded the "feet" section of the model, the software reported a printing time of 3.5 hours! Which they wouldn't do for me, because it was already late in the day and that would take them beyond closing time.

The smallest piece is the upper jaw, which only took 90 minutes. The MakerBot laid down the base, and used a hex infill pattern inside the solid parts.

Finally, it was done. I would have to paint it of course, but it's not bad otherwise. The Shapeways models do have better resolution, but this is acceptable. From a distance, I don't think you'd notice.

In Conclusion

3D printing is neat, but frustrating due to the crappy software library I'm using. It's expensive, and it takes far too long to see results from Shapeways. If the two models still on order come through and look nice, I might try a computer case or a hard disk enclosure. I'll just have to think of a shape with the absolute minimum of material.

I haven't decided what to do about the Luggage model. I spent a lot of time on designing it, and it would feel like just another uncompleted project if I don't print it. On the other hand, I don't want to spend either the money for Shapeways or the time at the library to print it. Everyone at the library was very helpful, but I'm not sure they really want to do any 3.5 hour prints. We'll see.

If anyone has a good reference site or book on designing for 3D printers, or can recommend a cheap-ish home machine that works reliably, I'd be interested.


The remaining two models finally arrived from Shapeways. First, the Vase, which was printed in "Strong and Flexible Plastic". It's much more flexible than I expected. You could easily fold it and break it. This is with a 1.3 mm wall. The whole thing is very light as well -- about the weight of a sheet of paper. I placed it under the flying saucer as intended. The vase platform looks interesting, but the saucer is still boring.

The Hawaii model was printed in "Full Color Sandstone". It's what I designed! The colors aren't particularly vivid, and I really don't like the feel of the material. Also, as I mentioned above, I originally used the same pattern as the Vase design, but it was rejected as too fragile. I used a much coarser mesh than I wanted, with thicker beams.

It is fun to see something you've designed online from topographic data and Google Map images brought to life. Now, if it only didn't take a month!

Update 2

I've been having health issues for the last month, and not sleeping again, so there's nothing new. Hopefully, another round of tests and doctors appointments will spot the problem this time...

I have fooled around with more 3D models, trying to come up with a concept for a case mod, or an external drive enclosure. All my ideas so far are both uninspired and too expensive to print. At this point, my 3D printing options include:

  • Shapeways does a wonderful job, checking the models and reprinting them if they fail. It's just too expensive and slow to really refine a design.

  • The MakerBot Replicator at the public library is free and I can get things printed in a day, but they have only two machines with limited hours. Both machines are in high demand and I don't feel right trying to do long prints on them. They are intended for people to learn about 3D printing, not for me to create desk toys.

  • A third option is the local Hacker Lab, which has 3D printers -- a Stratasys Dimension 1200, and some Printrbots. Unfortunately, the Stratasys machine is $10/hr to use plus $5 per square inch of plastic.

    The Printrbots are "free"-ish (I think they want you to put in cash towards materials now and then), but I'd also have to pay a $20 fee to learn to use them, and a $10 day pass each time I go there. Given how unreliable I've been told they are, it could take a few trips to get something large printed. I'd also have to babysit them for many hours while they print.

I spent a lot of time designing my "Luggage" model from the Discworld books. Since I couldn't find a sensible way to print a 5" by 7" version, or even a 3" by 3" version (which I would use as a case for the OUYA), I printed a desk toy version, just to see the final result.

As usual, Shapeways did an excellent job, and there's a lot of detail in the print. Here's a close-up. On the other hand, it took weeks to arrive, and now that I have it, I realize it's all wrong.

When I did this desk toy version, I made it rectangular instead of square, and forgot to adjust the spacing of the rivets. So they are tighter vertically than horizontally.

I was also thinking I would hand paint it, but when it arrived I realized I would never get a brush into the tight spaces behind the legs or at the back of the mouth. I really should have printed it in three pieces (lid, chest and legs) and added holes and pegs to glue it together.

I could print it again of course, but I've already spent too much on it.

It's tempting to buy a cheap printer, but I tell myself I could do an awful lot of Shapeways printing for the price of even the Printrbot machines, let alone a Replicator. So I don't see that as sensible.

I've been poking at the project code a bit in the last few days. I'm still very short of sleep (which means writing ridiculous numbers of bugs), but I have to start working on something again, or I'll just get depressed.

Hopefully, I'll have more for you next month.

Home       About Me       Contact       Downloads       Part 90    Part 92   

blog comments powered by Disqus