Saturday 7 February 2009

Siamese twins

I designed a right angle bracket that I intend to use in pairs. Due to its triangular shape, and the fact that my software creates rectangular rafts, it would be quite wasteful to print them individually.

I am not sure if STL files are supposed to contain more than one object. CoCreate seems to think so but ArtOfIllusion not. However, if you have a set of parts that go together to make one item then it would more convenient to store them in one file and print them together.

A simple workaround is to join all your parts together with an impossibly thin rectangle at base level.

The slice software samples at the middle height of each layer so this 0.1mm base gets missed out completely.

The down side is a bit more stringing as the head moves between the two objects.

These were made with 0.5mm filament through a 0.3mm nozzle and highlighted a problem. As you can see the top surface of the lower triangular part is rippled. The reason is that the filament is not being stretched much, if at all. That means that the sparse infill sags because it is not pulled taught. Three solid layers over the top is not enough to recover to flat as they are not being pulled tight either.

So it appears that some stretch is definitely needed unless you are making a solid object. Here is the same thing made with 0.4mm filament and all is well again.

The upper limit on filament diameter that is usable from a given size of nozzle is somewhat less than the die swell as you need to stretch it a bit.


  1. do .5mm and .4mm mean the width of what you put down? or are they the width of the filament going in to the extruder? If so, where do you get such small width filament, because those results look great.

  2. I am referring to the width laid down. The filament going in is 3mm ABS welding rod. It is being extruded through a nozzle with a 0.3mm hole. If it was extruded into mid air it would swell to about 0.6mm due to an effect called die swell. When it is being laid down I program the speed of the head movement relative to the flow rate to stretch it out to the desired diameter that can be anywhere in the range 0.3mm to 0.8mm.

    The concept of diameter is only notional because the height of the nozzle determines the height of the filament and its width is roughly the width of an ellipse with the same area as a circle with the notional diameter. E.g. when I say I am extruding 0.5mm filament then the height would be 0.4mm and the width 0.6mm.

  3. From your pictures I would be delighted with the ripple effect..version.
    Was this printed using the new "Halfords" extruder tips?
    Do you have to adjust the calculation for the extruder hole size, extrution temp, extrution speed each time you make/change the extruder?

  4. They were printed with my fanless design. The evolving design hasn't printed anything yet.

    The filament size / feed rate / head speed calculations remain the same for all extruders. I input the feed stock diameter and the filament diameter I desire and the machine picks the right speed for the extruder motor. Changes to the nozzle, etc, don't alter the formulas, but do change the range of what is achievable / works well.

    When I change extruders I do have to play around with the temperatures as depending on where it is measured can make a big difference.

  5. Looking at your photos, I wonder if the siamese twins would print better if they 'cuddled'. Flip one, reposition them into a double L, perhaps save some filament by using an L shaped base instead of a rectangle.

  6. You have lost me there. Surely the optimum way to arrange two right angled triangles on a square is the way I have done it. The only wasted area is the thin gap down the middle which could be as small as 1mm.

  7. Just looking at your wonderful pictures, I got to wondering about the stringing.. Presumably the feed motor has stopped when the extruder leaves the work to head to the next site, and maybe reversed a little, so the "string" is from swell and maybe tension pulling some from the head. Does this loss in pressure/plastic volume in the head affect the print quality where the head resumes printing, and would it benefit from more optimised paths that don't bridge such huge gaps, leaving this large amount of string?
    Or should I stop worrying and brave the cold in my workshop getting on with my own extruder?

  8. My current electronics don't allow the extruder to be reversed for historical reasons. Most of the string is from the built up pressure in the plastic and a little from being dragged out of the nozzle.

    Yes currently there are some gaps where it resumes. In the past I fixed that with a little delay before resuming. I took that out when I had an extruder with less ooze bit it needs to go back in. I am currently investigating flow rate versus pressure to get the correct formula for estimating the oozed plastic so I can delay the right amount to make up for it. Previously I had a fixed delay which caused some blobbing but that was actually better than a deficit as you can always cut it off.

    Enrique's excellent Skienforge suite can generate optimised paths that greatly reduce stringing by keeping most of the head movement inside the object boundary. I.e. it wipes its nose on the inside of the object and that gets incorporated into the infill.

    It can also turn off the extruder before the end of the path and slow the head to match the reducing flow rate.

    I lost compatibility with Skeinforge a long time ago because I don't use g-code, but I will try various techniques once I have finalised my extruder design. I think either a reversible motor or a stepper drive plus very fast head movements between tracks will be the way to go and then add software tricks to handle any remaining ooze.

  9. nophead: could you please point me a (mechanical) drawing of your machined nozzle?
    I mean this one:

    Im interested in the inner structure and some dimensions of it.

    Thank you,

  10. Hi Khiraly,
    It is basically this one here.

    I made the tip a bit bigger in diameter and chamfered it. I also used aluminium instead of brass for better thermal conductivity and easier machining.

  11. Nop: AoI will indeed do a union of two unconnected objects. I've been milling a fluidic amplifier this weekend and have been using a "picture frame" solid to set the limits of a cut and then placing various things I want milled within it. I've been able to get the picture frame and as many as four unconnected solids within it to do a usuable union.

    There is a trick to it, though, which I discovered after posing a query at the AoI forums last week. Once you do a boolean union or intersection within AoI, you have to ask AoI to convert the resulting product to triangular mesh. Once you've done that you then go into edit mode for the new object, select the whole ensemble and then do a "simplify mesh". This is a very necessary step to get a workable STL. As well, "simplify mesh" does not necessarily reduce the number of vertices in the STL. That doesn't mean that the process did nothing, however.

  12. Ah yes so it can. It doesn't seem to like importing STL files with multiple objects from CoCreate. I think that is because they do it differently. In CoCreate if you do anything that creates discrete objects then they are separate objects on the tree, and you don't appear to be able to unite parts that do not touch, but you can export more than one object to an STL file. On the other hand AOI can only export a single tree object but that can have separate pieces.

    Yes when I used AOI I had to use the convert to mesh and simplify trick to get round the terrible slow down once you have a few compounded booleans. It does mean you lose the infinite resolution of CSG and introduce approximations at every step. It also makes a very tedious process even more tedious by introducing three extra steps for every boolean op.

    In contrast the only boolean operation I have ever used in CoCreate is unite and only once or twice. Rather than create shapes as boolean expressions of simple solid primitives, CoCreate makes things by extruding, milling, turning, punching and stamping workplanes containing arbitrarily complex 2D geometry. It is far more intuitive and productive but it must create a CSG type representation internally because you can change things like the position of a face or the diameter of a hole afterwards. AOI forces you to model explicitly in boolean operations but then does not allow it to be modified without redoing all the operations again.