3D Internal Structure For Better 3D Printed Objects

Makerbot is in the gutter, 3D Systems and Stratasys stock is only a shadow of their 2014 glory, but this is the best year 3D printing has ever had. Machines are now good and cheap, there’s a variety of various thermoplastic filaments, and printing useful objects – instead of just plastic trinkets – is becoming commonplace.

Gradient-Grid
The standard rectilinear infill from Slic3r

There’s one area of 3D printing that hasn’t seen as much progress, and it’s the software stack. Slicing, the process of turning a 3D object into a Gcode file for a printer has been basically the same for the last few years. Dual extrusion is still a mess, and automated bed leveling is still in its infancy.

One aspect of slicing that has been severely overlooked is infill. Obviously, you don’t want to print plastic trinkets completely solid – only the outside surface matters, and a part with 100% infill is just a waste of plastic. Different slicers have come up with different ways of filling the inside of a print, usually with a grid of squares, triangles, or hexagons.

While the most popular methods of filling in a 3D printed objects do the job of adding a little bit of strength to a print and supporting the top layers of a print, it’s not an ideal solution. The desired strength of the finished part is never taken into account, print artifacts are sometimes visible through the side of a print, and the spacing of the infill grid is completely arbitrary. You can only set a percentage of infill, and telling a slicer to make an internal support grid with 10mm spacing is impossible.

Type A Machines just changed all of this. With the release of their public beta of Cura Type A, the infill for a 3D printed part is also 3D. The dimensions of the infill are predictable, opening the door to stronger and better looking parts.

From the Type A press literature and white paper, this new type of ‘infill’ isn’t; it’s more properly referred to as ‘internal structure’, with proper dimensions between infill features. Instead of a grid of squares or triangles stacked one layer on top of each other, it’s a true structure, with the infill following the perimeter of the 3D printed object.

Generating 3D Infill

3D
Infill generated from Type A Machine’s Cura beta. Note the 3D structure of the infill.

Right now, infill is generated in a slicer by specifying a percentage. Zero percent infill means a hollow object, and 100% infill is a completely solid part. These two edge cases are easy, but anything else means the slicer must fill the part with filament in a grid of tessellating shapes, either rectangles, triangles, or hexagons. With current slicers, the dimensions of this internal structure are, for all practical purposes, random. Printing an object with 20% infill might mean a grid of squares with 5mm or 2mm spacing. Telling the slicer to infill a part with a grid of squares spaced 10mm apart is impossible.

Type A Machine’s latest Cura release changes all of this, allowing a designer to set a precise distance between rows and columns of infill. By defining infill in absolute dimensions, this allows for stronger parts using less infill.

Absolute dimensioning is only one feature of the Type A Machine’s latest release of Cura. Even more exciting is the development of 3D internal structure. Instead of stacking layers of squares, triangles, or hexagons on top of each other, Type A Machine’s Cura uses an infill of cubes turned on their side. While each individual layer of infill looks like a series of triangles and irregular hexagons, when assembled into a printed 3D object, this infill forms a true 3D structure.

The closest comparison to this sort of structure is the difference between graphite and diamond. Both of these materials are made out of the same element, carbon. The physical structure of graphite is just, 1-atom-thick layers of graphene, producing a relatively weak material. Diamond, on the other hand, has a true 3D structure and is one of the hardest materials known to man. While adding 3D structure to the infill of 3D printed objects won’t make the objects any stronger, it will drastically reduce delamination, and be much more resistant to stresses in all three dimensions.

While Type A Machines has done some great work here, it does mean there’s yet another version of Cura to deal with. Type A Machine’s Cura, in addition to the LulzBot edition and the original are now the defacto standard for turning 3D objects into printed parts. Having an open source solution is great, but forking the development this much surely can’t be ideal.

54 thoughts on “3D Internal Structure For Better 3D Printed Objects

    1. Cura dumps out plain text gcode.
      Even if it weren’t 100% compatible with your machine, I’m betting there’s a post processor out there that will shape it into something useful.

    1. Exactly! I was reading the text expecting Sli3r be mentioned. In vain.

      Also:

      “…it will drastically reduce delamination, and be much more resistant to stresses in all three dimensions.”

      Although it sounds intuitive, I’m not quite confident about it, since the weakness of FDM is intrinsic to the bond of the printed filaments. Some well controlled experiments with (mainly) shear and compression tests would be a great value here.

    1. I laughed at the preview of a printed mouse, lol.

      Deos ‘customizable bed shape’ mean the lowest layer of the structure or the layout ot the actual printers bed?

      1. Slicr support printers with differently sized/shaped beds, including a round one (e.g. some Delta’s use that). So you define the dimensions and origin there – e.g. my Mendel90 has 0,0,0 in the center of the bed, unlike most other machines, which have it in the corner.

        1. Thank you for clarification! I don’t have my 3D printer yet and it will be my first home CNC device.

          I forgot about Deltas! It really was the round bed that had my head scratching.

      2. Slic3r allows you to give an STL file defining the shape of the bed. So it can literally be anything you want. When the object is looked at from above downward, the shadow cast becomes the bed shape.

    2. The problem with the slic3r 3d hexagonal infill pattern mentioned multiple times here is that it produces gaps between edge layers of filament beads which prevents the overall structure from benefiting from the lattice pattern. Type A Cura update makes each bead lay against the previous layer along the entire length, making the resulting pattern produce results that will actually improve overall part strength. Check the gcode, and break open the part if you don’t believe me. You can read about some testing I did on slic3r 3d honeycomb back in March 2016 here: http://blog.michael-crockett.com/html/InternalGeometry.html

  1. Thanks for this, I’ll check it out. Having more control over infill would be great, as would more control over support placement. I’ve settled on Cura after trying many different apps out there, concentrating on open source apps given that the price is right for us poor folks ;)

    Brian, FWIW, those animated GIF’s are really distracting while trying to read an article – probably should leave them in the top graphic if you have to use them, and then stick to static images in the middle of the article.

      1. I know what you mean. I changed some settings on Chrome and FFox so the text loads immediately and the graphics after.

        FFox: about:blank (I think)

        Chrome: chrome://flags/#disable-hyperlink-auditing
        ! Read carefully on the Chrome ones!
        I lost all of my bookmarks once because I bricked it messing around with the settings page.
        It is not forgiving like FFox is.

      1. No idea… brackets around names? If zapping those out of the articles on-the-fly was not that hard, doing the same to the all that squirming pestilence won’t be a big deal either…

  2. In most of the things that have looked at infill like this, it’s been found that structures like the 3D honeycomb in slic3r, which has existed far longer than Type A’s. Have been weaker than plain old rectilinear infill, and take longer to print. They are useful for some cases. (The great example I was thinking of was a printed boat, which may become damaged, if it’s got a 3d honeycomb, then the rest of the hull is still buoyant, so it should still float if capsized, etc, just as a lot of manufactured ones do.)

    Here’s one example: http://my3dmatter.com/influence-infill-layer-height-pattern/ It’s not the best, there was one I thought I’d saved as a bookmark but alas, I appear to not have, and can’t seem to find it.

  3. I don’t understand the point that you can’t pick the infill spacing. With Slic3r, you absolutely can control the dimensions. 10% infill means that 10% of the internal volume will be filled, which means that there’ll be ~9 filament-widths between walls. It’s not measured in millimeters, but you can convert pretty quickly.

    And things like the hexagons make very nice rigid vertical tubes inside the piece. No complaints.

    What I’ve always wanted to see, though, is variable density infill. Gerrit pointed to something like this in his re-imagining-the-slicer article.

    1. Variable density infill would be nice, more infill close to the walls for support, less in the interior. That would seem to work well with infill mesh following the contours.

      1. Perhaps something along the lines of the current thin-wall detection that fills an area solid if the area is within a certain amount.

        Mathematically this could be modelled so that the infill varies with the distance from a wall, meaning higher density at the edges and lower at the middle.
        I suspect that a continuous pattern would be strongest, rather than discreet boundaries, given the strength advantage in a linear extrusion versus the inter-line and inter-layer adhesion.

        It’s a non-trivial optimisation problem, though, particularly with complex parts.

        Hmm… Anyone due for a thesis?

        1. Just now I’m thinking of a cubic pattern oriented with a corner up, rather than the conventional alignment with XYZ axis. Smaller cubes can stack around larger in the fill pattern with every trace on the infill resting nicely on the previous layer. No bridging needed until you get to the upper outside layer, which can rest on infill with small division.

          Size 1 infill cubes adjacent to the outer surface. Size 2 cubes inside those, then size 4, 8, etc. until the volume is filled.

          Where less strength is needed a 2D version of the infill could be used, with horizontally oriented diamond layers.

  4. The problem with the slic3r 3d hexagonal infill pattern mentioned multiple times here is that it produces gaps between edge layers of filament beads which prevents the overall structure from benefiting from the lattice pattern. Type A Cura update makes each bead lay against the previous layer along the entire length, making the resulting pattern produce results that will actually improve overall part strength. Check the gcode, and break open the part if you don’t believe me. You can read about some testing I did on slic3r 3d honeycomb back in March 2016 here: http://blog.michael-crockett.com/html/InternalGeometry.html

  5. Timothy Gray, thanks for the notice. I just checked the links and at least at the moment everything seems to be downloading currently. I don’t know why you they didn’t work for you. Please let me know if you find you are continuing to have problems and I can point you to another place to download it.

  6. A nice speed-up that Slic3r has supported since way back (version 0.7?) is the ability to print infill only every other layer (double thickness). Significant speed up on my prints! Does Cura support this?

  7. “While adding 3D structure to the infill of 3D printed objects won’t make the objects any stronger, it will drastically reduce delamination, and be much more resistant to stresses in all three dimensions.”

    I don’t understand this statement. If more resistant to stresses, isn’t that stronger?

      1. Using more material in ANYTHING is generally going to make it stronger. Can support more load, can take more stress, that’s strength!

        Unsubtle name, btw! Use the same one on your Redtube account?

  8. Gyrobot launched a website to create personalized 3D models for foot soles a few days ago, and he’s using variable infill (density) for different parts.
    see: gensole.com

    1. Exactly. I wouldn’t consider them affordable, considering actual usefulness still hovers around zero but price most definitely does not – it certainly isn’t at “hey why not” level. Moreover, all the sub-$500 models I’ve seen were significantly shoddy ones with much MDF / threaded rods / 3D-printed joints or alu-profile rails. If crappyness is not a concern, you can make one out of water pipes for under $200 – except it generally is.

  9. Interesting, but I’m skeptical. I’m seeing each layer of infill basically overhanging the previous one requiring more filament to achieve the same contact area between layers. It may have more strength in certain directions, but I think if you really need strength in a particular direction, you might be better off rotating the model so the infill gets printed with strength in the direction you most need it.

    For the record, I use Matter Control and have been very happy with it. The last update did wonders for support structure, but that’s a different topic. It doesn’t seem to do 3D honeycomb, but they have a great page on the other types of infill, with the pros and cons of them.

    https://www.matterhackers.com/news/mattercontrol-delivers-optimized-hexagon-infill

  10. Or you can fill it with foam. Cut from foam block rough dimension (same or slightly smaller than the interior dimension). Use expanding foam in a can to fill in the gaps.The expanding foam also serves as adhesive, but keep in mind if strong adhesion is necessary then you would have to first do a bit of light sanding. http://www.instructables.com/id/How-to-Create-a-Large-3D-Printer-using-a-Smaller-3/step2/Begin-Filling-Parts-with-Foam-Optional/

Leave a Reply

Please be kind and respectful to help make the comments section excellent. (Comment Policy)

This site uses Akismet to reduce spam. Learn how your comment data is processed.