More experiments with 3D-printed two-part molds; refining the mold-generating and casting processes

Added on October 16, 2012

Since the last post, I have generated a few more molds and refined the OpenSCAD script a bit to be more flexible and easier to use. The main issue I was concerned with fixing was the nasty layer separation problem I was seeing in the first mold (large amount of splitting between layers of the print). After some helpful advice from the Makerbot Operators Google Group, I was able to really stamp that issue out, though another, smaller issue did present itself. I’m still seeing some overall upward bowing in the molds that are printed, but it may not be enough to cause any functional problems just yet.

Fixing layer separation / delamination issues in printing

Anytime you try to print certain features with this type of 3D printing, different areas of the model may cool at different rates, causing mechanical tensions to build up, applying unwanted forces to parts of the mold while printing. Thin or sharp features, like the corners of my original square two-part molds, tend to lift upward, while the larger areas (the walls) do not.

My first instinct was that the build area of my bot was not fully shielded from the atmospheric effects of the environment its sitting in. To be more specific, I was a bit worried that the massive AC duct in the ceiling over the bot was dumping large amounts of cold air directly into the top of the machine, displacing all of the hot air it worked so hard to work up. This not only makes it harder for the bot to maintain a stable temperature (an essential part of its process), but it introduces drafts, eddies and, therefore, differential cooling to the part, which cause all sorts of problems.

I put windows on the bot a while back, but left the top totally exposed. To fix this, I sliced up a spare piece of foamcore I had laying around to form an angled hood that fits on top of the bot. I immediately printed a tall-ish vase to test out the vertical layer separation, and noticed a pretty obvious improvement.

I printed another mold, and the layer separation was obviously lessened, but was still there. Well, what now?

Solution: update “Filament Diameter”
The solution is pretty simple: grab some calipers and accurately measure the actual filament being fed to the bot. Due to manufacturing differences, and to the fact that ABS absorbs moisture from the air, the filament diameter can actually vary by a up to few tenths of a millimeter or so. Enough to cause problems.

I measured the filament at a few points within a meter or so of the end of the filament I had and averaged the values. For me, the diameter was 1.78mm. The default diameter used by ReplicatorG for slicing is 1.82mm – a difference of only .04mm. You might think that this shouldn’t make much of a difference, but it really does. Without changing any other parameters, here is what that difference looks like in prints:

Refinements to the OpenSCAD mold generating script

All of the molds I will show are the result of a set of OpenSCAD scripts that I’ve been working on for a few weeks. These scripts automatically generate two-part or one-part molds around arbitrary 3D models, which can be used to produce many different types of castings. As soon as I’ve compiled some more notes about finishing and casting procedures for these molds, I’ll toss the whole project up on Thingiverse, but right now I’m still experimenting with ideas.

Once the layer separation issue was solved, I still noticed a certain amount of overall upward bowing persisting on the molds. I thought this was making the halves not fit together perfectly, but I’ve still got a hunch that it’s not actually causing too much of a problem. Again, I raised the question to the Makerbot Operators Google Group and got a pretty consistent response: level the build the platform some more. While I will try this out, it is something I really don’t like doing. It seems like I haven’t come across two people who go about this process the same way, and everyone seems to have their own little procedure (sometimes bordering on superstitious ritual), which makes finding a good walkthrough hard to come by. Nonetheless, I’ll try it and see if it makes the bowing issue go away or not.

Another solution to my bowing problem sparked some good feature development in my scripts. If the layer separation or bowing is indeed caused by tension being applied to fine or sharp details, then the solution is to eliminate these sharp details. This means rounding off the corners of the mold, or making the mold entirely circular so that there are no sharp edges or corners. I’ve done both, and now have two OpenSCAD scripts – one to create rectangular molds without or without rounded corners, and one to create circular molds. Here are some sample renders:

Supershape 02 two-part mold – 10/2/2012

This mold was printed after I added a hood to the Replicator, but didn’t change any software settings in ReplicatorG. The layer separation was less, but still very evident. For the last week or so, I thought this mold was a failure because I could not get it to hold water very well. When filled with water, each mold half seemed to hold up just fine, but when clamped together, the water slowly leaked from the seam. Eventually I decided to clamp the halves together, then apply modelling clay to the outside of the seam to block the water there – I assumed I would have a flat disc in the casting to cut away after it was all done.
[flickr-gallery mode=”photoset” photoset=”72157631678019679″]

I whipped up some Knox gelatin using fruit juice and sugar, then injected it into the mold using a syringe meant for poultry (a “flavor injector”). Although I was expecting a disaster at the seam line, there was actually no problem at all! You could hardly even see the seam line on most of the casting! I used Pam cooking spray as a release agent, which I think may have actually mixed with the liquid gelatin inside the mold. The result was…less than delicious, but very wobbly and finely detailed!
[flickr-gallery mode=”photoset” photoset=”72157631780309520″]

Admiral Ackbar two-part mold – 10/10/2012

This mold was printed using the “Filament Diameter” tip I found. I used a filament diameter of 1.78mm in RepG, with no other changes to the settings or the printer. The result was a definite improvement, as the walls are completely smooth and exhibit no signs of layer separation!

There is still some amount of upward bowing at the corners, but it doesn’t seem to affect the fit of the mold halves too much. Will be casting some Knox gelatin into this in the coming week or so.
[flickr-gallery mode=”photoset” photoset=”72157631748513405″]

Circular supershape 02 two-part mold – 10/12/2012

To test the idea that the upward bowing issue was related to the sharp corners of the mold, I created a script to generate a cylindrical mold, instead of a rectangular one. It still bowed upwards a little during printing, but I think it bowed less than the square molds.

Unfortunately, I must have messed up the script a tiny bit, because the keys do not fit together well at all. I had to cut away two positive keys before it fit together, so I must have used a “-” instead of a “+” somewhere.
[flickr-gallery mode=”photoset” photoset=”72157631786039566″]

Next up

I’m currently working on learning how to use chocolate as a casting material (which I’ll make another post about soon), as well as how to mix up and cast Oogoo at home without destroying anything. If I can get the chocolate casting process figured out pretty soon, then I’ll move on to hard candy and maybe caramel or some other confectionery medium.

On the less-so-fun, but still important side, I’ll be trying to perform some tweaks to the Replicator, like level the heck of the build platform and…well I think that’s about it.

I’ve also got a few open-face molds, and a relevant OpenSCAD script, to work with. I’m thinking of casting plaster into them, as well as RTV silicone and Ooogoo. I’d love to add a removable door to the OpenSCAD script to help with demolding, but I may figure out a better option for that instead.