Monday, 22 August 2011
My own 3D slicing code...
The common one, because it is so flexible and powerful, is skeinforge. It is python based and works well.
However, being me, I have written my own code now, which is what all this polygon library stuff was for.
Having not touched the 3D printing for a few weeks I thought I would have a bash at making it work yesterday afternoon - and it does. I have made the GCODE output stage and it actually prints.
I think my inset algorithm and polygon functions are producing more precise output. It is looking better, but it is hard to be sure as the settings are not easy to exactly mirror between the systems, and that can make a difference. One thing I noticed with skeinforge, for example, is to make this gear fit a 5mm spindle I had to make the design have a 6mm hole. My tools seems to not have this issue.
Some things skeinforge did are almost certainly better. The fill logic is an area I have done completely differently. I can't, yet, handle single outline skins, i.e. very thin walls, as I will always extrude both inside and outside. I also do not yet have the logic to reduce flow on sharp points where the plastic overlaps. This is all related, and on the todo list.
However, one bit that seems to work really well is anchors. Basically, getting the print started is hard work - often you get too little or too much plastic as you start. It can take a few cm of extrusion before it is sticking. It needs special attention. Skeinforge offers a raft solution and I have come up with an anchor.
The raft idea is that you make a lattice of plastic first. The first layer being lots of extruded plastic slowly, so it cannot be dragged thin and cannot fail to stick to the bed. Then a thinner layer on top, and then the print. This has issues - mainly how to separate the print from the raft afterwards. The print does not have a good bottom layer either as not printed on a flat surface, and that can be important as many things have a flat base. I never got on with rafts, but I know some people use them with success.
One concept being considered is whether it is possible to create support structures automatically to handle overhangs. This may need more work and experimentation.
Next questions is if and when I publish the code for others to play with...