Showing posts with label skeinforge. Show all posts
Showing posts with label skeinforge. Show all posts

Tuesday 3 April 2018

Avoiding voids

The thinnest practical wall you can print, (with Skeinforge at least), is two extrusion widths wide. Any bigger leaves a gap, until you get to three extrusions wide, and then you get infill in between them.

If the wall is exactly two extrusions wide then they only touch tangentially and have a weak bond because the edges of the filament are rounded.


I discovered that if you make a wall even thinner then Skeinforge still lays down two paths equal to the extrusion width but places them closer together. This is because it always offsets inwards by half the extrusion width, even if the resulting paths overlap. I found I can make use of this to squash the plastic together, making a stronger wall with less voids.

An optimum amount of squeeze is to place the nozzle aperture just free of the flat part of the first path when extruding the second. The width to make this happen is $extrusion\_width - layer\_height / 2 + nozzle\_aperture / 2 + extrusion\_width / 2$.


Of course, despite what Skeinforge thinks, the plastic volume can't overlap, so regardless of where the nozzle is the minimum width the wall can be is $2 * extrusion\_width - layer\_height * (1 - π/4)$ due to the volume of plastic extruded, i.e. if it manages to completely fill the voids. This is shown below: -


The grey area is where the edge would have been with the wall two extrusion widths wide. There isn't much difference, and depending on the viscosity of the plastic, the real width should be somewhere in between. But the big difference is the walls are strongly fused together. The top void should be completely filled because it is right under the nozzle, leading to a smoother top surface. And the bottom void has more chance of being filled due to the back pressure caused by the filament having to flow more to the right.

To put some numbers to the diagrams, these have been drawn to scale for 0.25mm layer height and 0.5mm extrusion width, 0.4mm nozzle. The requested wall width is 0.825mm but the volume of plastic means it must be at least 0.946mm, only 0.054mm less than the original 1mm wall.

I made a test script that makes a box with two 1mm walls and two 0.825mm walls.


Here is a corner of the box under a microscope. The wall on the left is seamlessly fused and the wall on the right clearly has a void.


The wall comes out a bit thinner than the theory predicts, I am not sure why, maybe the increased pressure causes the plastic to feed a bit slower.

I used this technique to make the Mendel90 fan guards a lot stronger part way through production because I had some fall apart one day when my filament was a bit undersized.

It would be nice if the slicer could do this automatically, so you can keep a 1mm wall in the design, but it would make it by extruding one side of the wall as normal but the other side it would offset the nozzle to fill the voids and then extrude a little more plastic to make it still 1mm thick.

In fact it should really do this anytime it is extruding against another extrusion path. E.g. when doing multiple outlines and when doing infill. I.e. the only time the tool path of the nozzle should be down the centre of the extrusion path is when there is nothing either side, or it is enclosed on both sides. And in each of these three cases a slightly different flow rate would be needed to get the new exposed edge in the correct place.

Wednesday 29 December 2010

Tip top top layer tip

When I first started printing on my Mendel I found it difficult to get the top layer infill solid and meeting the edges. It behaved differently to HydraRaptor, but since it was a different bot and extruder and I had also changed to a different type of ABS and updated Skeinforge it was hard to work out what the problem was.

The first problem I identified was backlash caused by the filament dragging on the carriage. I fixed that by switching from basket feed to spool feed, see hydraraptor.blogspot.com/2010/07/bit-of-drag.html. That made a big improvement but I also set the "Infill Perimeter Overlap" ratio to its default value of 0.15, where previously I had used 0, and also increased the amount of plastic above the theoretical 100% value.

That is the way it stayed until very recently when I made a discovery about Skeinforge. A new parameter had appeared when I updated: "Infill Interior Density over Exterior Density" ratio, which defaults to 0.9. This seems like a good idea to make inner solid layers a bit less dense. It helps if the bottom layer is a bit too low by giving somewhere for the excess plastic to go. As I was using a little excess plastic anyway it seemed a good idea.

I had noticed that some outer surfaces are never well filled even when other surfaces on the same object are. Here is an example in the bottom of the well in this bracket.


I only realised recently that this was because the 0.9 is applied to some exposed surfaces, not just to internal ones. I set the value to 1.00 and things got a lot better. Not only does it fix the problem above, but it helps to make the other top surfaces solid. I normally use three solid layers to get a good surface on top of sparse infill. But with the first two at only 90% the top layer is still lacking in plastic. That is why I had to use a higher flow rate than theory predicted. Once I got rid of this parameter I could reduce the flow rate and still get a solid top surface. In fact, I can get a reasonable top surface with only two solid layers now.

Another side effect of having the flow rate too high to compensate for the layers below being only 90% was that the top layer was being forced in. When the infill goes from two different directions and meets in the middle I was getting a ridge because the plastic would be being forced into a channel that was a bit too small for it.

Yet another issue I had noticed was that some side walls were inexplicably lumpy. I.e. not in positions where the filament starts or stops. Examining the slices I realised that it was caused by the infill displacing the outline. This was because I had a 15% overlap. Since I made the inner solid layers solid I found I don't need this any more and those bumps have gone away.

So in summary I was using excess flow rate and infill overlap to compensate for inner solid layers (and some outer ones) not being 100% solid. The side effects were lumpy walls and ridges on the top surface.

Tuesday 28 December 2010

Round robin

I have been making a few small tweaks to my host software to improve quality recently. One such tweak is the order in which islands of an object (or objects) are visited. By "island" I mean a closed outline and the holes and infill that it encloses. Skeinforge seems to always go for the nearest island, so when it finishes a layer it starts the next layer on the island it has just done and revisits the others in the reverse order.

This means that the plastic is added to the hottest island first and the coldest last. When an island is small it can mean that the layer below is still molten when the next layer is added. I simply reverse the order of every second layer so that the islands are visited in a round robin order. That means they all get the same time to cool down before the next layer is added.

The only downside is one extra long head move each layer from the last to the first island. If your machine leaves strings that is not ideal but mine hasn't since I started reversing the extruder. That also makes the Comb and Tower modules of Skeinforge redundant.