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: , , ,


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

Subscribe to
Posts [Atom]

View mobile version