Wednesday, January 28, 2009

 

Support for overhangs


The latest Java host program in the repository now contains code to compute the support needed for overhangs automatically. Above is a screenshot of it working - the L block bottom left is being deliberately built the wrong way up so that it needs support. The layer currently being computed is shown in the diagnostic window. You can see the cross-section of the object itself (blue) and the support for the overhang (brown).




Here it is part-way through the build. You can see the support pattern at the front, and the pillar of the L-shaped object being built at the back.



Here is the build finished. The supported bit is at the front.



Here is the part after taking it off the machine viewed from underneath with the support still in place.


And here it is in its final form with the support separated.

The program allows you to specify a support material for each material in the RepRap machine by name. As the RepRap code allows you to have several logical extruders all talking to the same physical extruder you can use a material to support itself by copying its entries in the preferences file (sort the file first to bunch them together) then renaming them from Extruder_0 to Extruder_1 (or whatever). You then change the infill pattern of the support to whatever you want. Here I set it not to outline, only to infill, and not to change the direction of the ply between layers.

The support cleaved pretty easily from the part with a penknife blade, but I suspect that this would have been harder had the underside of the part been undulating rather than flat. Of course two extruders would allow - for example - a friable paste to be used as a support (my current favourite: cornflour mixed with a gel of PVA glue and methanol - to be blogged when I have some results...).

The supports are only computed by the host software when it is saving G-Codes to a file. The reason for this is that the software has to do the calculation in reverse - from the top down - so that it can know what's immediately above the layer it is currently creating. It can only do that by writing each layer as a temporary file, then concatenating them all in reverse order to actually build from the ground up when it has finished.

If you are interested in how the use of a CSG representation makes the support calculation easy to code, take a look at the
     private void supportCalculations()
function in the class LayerProducer.

As you can see, I have not exactly tested the code on the world's most complex shape, so all this should probably be regarded as experimental...

I'm off for a week to give RepRap talks in Wales and then Spain. When I get back I'll try it on something a bit more challenging, and when it's working properly we'll do a release.

Labels: , , ,


Comments:
re: "As you can see, I have not exactly tested the code on the world's most complex shape, so all this should probably be regarded as experimental..."

Of course! All the same, it's a great start! Now I can stop complaining that nobody's done anything about the support material issue. :-D

On a fiddly note, you say that you were able to separate the support structure with a penknife. I'm assuming that you used the same material for the support that you used in the print, right? If so, did you print the support, or the support/product interface at a different temperature?
 
No - I used the same temperature for both. It would be easy to make them different, though, even when using the same physical extruder, as long as one was prepared to wait for the extruder to cool down and to heat up. When I get back I'll give that a go.
 
I mentioned it because if I remembered correctly, Chris has apparently had some success using a somewhat cooler extrusion temperature for support structures. I may be wrong about that, though.
 
Adrian

Most excellent as ever.

Looking forward to the support glop too. What gave you the idea for that combination ??

Along side Forrest I too seem to recall that nophead did some work with temperatures to aid raft separation.

Waiting for the Extruder to cool a little might not be problem (Might even be possible to ignore) as the incoming un-melted polymer will soak up a bunch of the surplus thermal energy as it warms/melts.
 
> Looking forward to the support glop
> too. What gave you the idea for that
> combination ??

I wanted something water-soluble that would set fast, so I decided to go for an inert filler powder and a water-soluble glue. However, I didn't want to actually use water in the paste, but to use an organic solvent instead to get fast evaporation.

PVA is the obvious water-soluble glue to use, as it's cheap as an out-of-work banker and can be got in any DIY shop. And - being totally ignorant of chemistry - I thought poly vinyl alcohol sounded as if it ought to dissolve in methylated spirits (again cheap and easy to get from DIY shops).

So I dolloped a few drops of PVA into a test-tube with meths in and shook it. Miraculous Serendipity! It did better than dissolve - it formed a gel :-)

I then went for the cornflour because in cooking it always forms really smooth fine pastes, and again, it is very easy to get.

The gel and the cornflour make a nice paste that is stable in a syringe with a cap on for at least a week (and counting). It doesn't separate or set.

When you extrude a thin stream of it, it dries set quite quickly, but there's still water in it (from the original tube of PVA), which I think slows it down. So what I am doing now is to let the original PVA set in small lumps on a plastic bag (i.e. to let it get rid of all its water); then I'll try to dissolve those lumps in meths to see if they still make a gel. Watch this space...
 
This comment has been removed by the author.
 
Smart!

Is there a way to conserve material, by putting some angle under the overhangs? Instead of a cube, this would give you support material as a straw at the bottom, flaring out to a square a little smaller than the one you're supporting, a' la Frank Lloyd Wright.

On paste: I think denatured alcohol is a little cheaper, and more widely available. I have used it in the lab as a pre-solvent to make it easier to dissolve PVA powder in water, but I imagine methanol works the same or better.

To dry your PVA, I'd recommend ribbons rather than lumps.

You might also try your recipe without any PVA at all: the corn flour will give off starch, which is a polyol like PVA (although it's polycyclic and has ester linkages in its backbone, you're worried about solubility and rheology, so these two facts don't matter).
 
Yes - we could reduce the support as it went down simply by offsetting it inwards a bit before unioning it with each layer. The problem might be that - for tall objects - it'd vanish into thin air half way down. There'd have to be some minimum area below which it didn't shrink (easy to compute; indeed there's already a function in there to do that). That area could depend on the crinkliness statistic of the shape (ratio of the perimiter to the perimiter of an equal-area disc).

As to just mixing the cornflour with meths and no PVA - I tried that. It made a nice paste, but it was too weak and friable when dry.
 
Update on my idea of dissolving pure dry PVA in methanol:

I am a moron! Of course it doesn't dissolve. A gel is a mix of a polymer and a liquid that wets the polymer, but does not dissolve it. I should have realised that immediately I made the gel with the water-wet PVA.

Looks as if I'll have to go with the gel made with the wet PVA after all. We may need to put a fan on it while it's drying. I'll see.
 
I think solid PVA is a thermoplastic so perhaps if you could form it into rods you could extrude it molten and it would solidify quickly.
 
How about hair gel? From my experience it will solidify fairly quickly. Add some starch and it may work quite well. It will remain water soluble too.
 
Post a Comment

<< Home

This page is powered by Blogger. Isn't yours?

Subscribe to
Posts [Atom]