Pages

Sunday, July 26, 2009

Build Quality


This is not a new idea (indeed, it's so old that I've forgotten if it was Simon or Nophead who first suggested it; apologies to the true originator if it was neither of them...). But a simple way to improve build quality is to start and end the outlines of parts from within the solid area that they surround. This avoids dwell problems at the start and finish of the outline, and wipes the nozzle on the interior of the part itself as the head moves off to the next outline. All the slightly dodgy blobs, dribbles and so on are left buried in the fill, and don't appear on the outer surface.

At the end of last week Ed and I realised that a simple way to do this is to use the hatch that fills the interior as a guide to what is needed. I've now implemented this in the Java Host software and checked it into the repository. On the right is the new code building my handy SMT-measuring tweezers. This type of object with its thin sections is notorious for generating lots of spurious bumps and string. As you can see there is the occasional lump (easily removed with a fingernail post build), but the quality is much better than before. And it works even better on chunky things like the coat hook.

The way the code works is to identify the extremal corner of the profile in the hatch direction. It then finds the nearest point in the hatch to that. From that hatch point it tracks through the hatch until it finds a reasonably long hatch line (where "reasonably long" == 10 mm or so). It then adds the hatch lines from the middle of that long segment to the outline polygon and deletes them from the hatch. There are other heuristics to deal with cases where it can't find a long bit and similar problems.

The effect of this is to start the outline within the solid (and the middle of a "reasonably long" hatch line is likely to be a sensible distance from the perimiter for that start), run to the outer edge having left dwell blobs and draggy starts in the middle of the solid, run neatly round the outline, and then move back into the middle again (without extruding) to finish.

It's always nice when you can make things better just by changing the software...

I'll play with it for a bit to check it works OK, then do a release.

5 comments:

  1. this sounds like an interesting idea, i hope it works out, i will keep my eyes open for it in the future

    ReplyDelete
  2. Have you included provisions to vary the start point from layer to layer? Could prevent introducing structural problems in odd geometries... Just a thought.

    ReplyDelete
  3. Yes - the hatch direction flips between odd and even layers, of course, so a vertical prism gets a different start point in alternate layers anyway.

    In addition I've made it so that it flips the direction vector on the hatch modulo 4. This means that it starts in a different place cycling through four layers. And when the profile changes that shifts it too, of course.

    ReplyDelete
  4. Maybe I'm just being daft here...but wouldn't modulo 3 or 7 be better? With an even number on parts with many layers that are exactly the same you will get exactely four layers before the start point comes back over the original location because the changes in hatch direction are inherently even--we only switch back and forth. But, with an odd modulo, we get less of that line-up with the hatch direction flip and thus a minimum of twice the number of layers as you specify for your modulo--i.e. 6 for modulo 3 or 14 for modulo 7. This is an easy way to get more layers, more variability in start location, and more stability for the cost of changing a 4 to a 3 or a 7 in code. Just a thought.

    Demented

    ReplyDelete