3D Print Springs With Hacked GCode

If you’ve used a desktop 3D printer in the past, you’re almost certainly done battle with “strings”. These are the wispy bits of filament that harden in the air, usually as the printer’s nozzle moves quickly between points in open air. Depending on the severity and the material you’re printing with, these stringy interlopers can range from being an unsightly annoyance to triggering a heartbreaking failed print. But where most see an annoying reality of pushing melted plastic around, [Adam Kumpf] of Makefast Workshop sees inspiration.

Noticing that the nozzle of their printer left strings behind, [Adam] wondered if it would be possible to induce these mid-air printing artifacts on demand. Even better, would it be possible to tame them into producing a useful object? As it turns out it is, and now we’ve got the web-based tool to prove it.

As [Adam] explains, you can’t just load up a 3D model of a spring in your normal slicer and expect your printer to churn out a useful object. The software will, as it’s designed to do, recognize the object can’t be printed without extensive support material. Now you could in theory go ahead and print such a spring, but good luck getting the support material out.

The trick is to throw away the traditional slicer entirely, as the layer-by-layer approach simply won’t work here. By manually creating GCode using carefully tuned parameters, [Adam] found it was possible to get the printer to extrude plastic at the precise rate at which the part cooling fan would instantly solidify it. Then it was just a matter of taking that concept and applying it to a slow spiral motion. The end result are functional, albeit not very strong, helical compression springs.

But you don’t have to take their word for it. This research has lead to the creation of an online tool that allows you to plug in the variables for your desired spring (pitch, radius, revolutions, etc), as well as details about your printer such as nozzle diameter and temperature. The result is a custom GCode that (hopefully) will produce the desired spring when loaded up on your printer. We’d love to hear if any readers manage to replicate the effect on their own printers, but we should mention fiddling with your printer’s GCode directly isn’t without its risks: from skipping steps to stripped filament to head crashes.

The results remind us somewhat of the 3D lattice printer we featured a couple of years back, but even that machine didn’t use standard FDM technology. It will be interesting to see what other applications could be found for this particular technique.

36 thoughts on “3D Print Springs With Hacked GCode

  1. “Even better, would it be possible to tame them into producing a useful object? As it turns out it is, ”

    Huh? Don’t get me wrong, it’s a cool hack. It doesn’t have to be useful to be worth trying and/or reading about. But.. what exactly are you going to use these for again? Even the original author admitted that they are not likely to be useful. If anyone has any ideas I am interested in hearing them!

    ” The software will, as it’s designed to do, recognize the object can’t be printed without extensive support material. … good luck getting the support material out.”

    Are slicers that don’t let you turn off all the support material really a thing? There is certainly nothing to it in Slic3r! Don’t get me wrong, I’m not sure what Slic3r would do with such a design and am in no way certain it would be printable. If not though, support material certainly would not be the problem!

      1. I’m not sure they would provide enough force but like you said, won’t know for sure till you try. I’m thinking they would be kind of delicate when it comes to lateral movement. You would probably need to make sure to design your switch to prevent that, especially if it’s for use by someone with motor control issues.

    1. Yeah, turning off the support material is easy enough–but a conventional slicer will still divvy that helix up into a lot of thin layers, turning an already weak spring into an even weaker one with tons of fracture planes along its length.

    2. Why not use springs like this as supports for a larger, sliced, object? Instead of a slicer building up struts a layer at a time, spring spirals of various heights diamaters shapes and pitch diameters could be spun prior to building of traditional layers. I can imagine varying the shape of the spring such that each coil had tabs that would interface with the printed part. since it is a spring the print head can push the overheight part of the spring out of the way as it prints the part. I am also wondering if this technique could be used to print arches, arcs, or instead of printing the spring up in the z axis, print it along the x or y axis.

  2. This is a nice approach! With this technique and a lot of trial and error, maybe one could print the wirefeame outlines of a model within seconds to see if it fits the expected size… Kind of like one would work with a 3d pen…

      1. Lately I have been thinking about 3d printers with additional axis. My conclusion was that the hardware wouldn’t be too difficult to build but writing a slicer that can take advantage of it would be a killer. These people have already built the hardware and they sound like they would be the right people to design the software too. Now if only they can be convinced that they have the wireframe problem solved and that it is time to tackle more solid structures. That could be big!

      1. Interesting thought. I would think that if you plate it thick enough the plating-to-substrate bond would become less relevant. At some point, the plating should start behaving more like a tube.

  3. I would think it would be quicker and more repeatable to just use a thin filament and use a heat gun to soften the filament enough to wrap it around a piece of tubing or pencil or whatever and then let it cool so it holds the shape.

    1. Who has such thin filament just lying around and what do they do with it? If you have to purchase it special for the job you might as well just purchase springs. I know I can find those in abundance at the local hardware store. Where would I go for thin filament? McMaster Carr maybe?

      1. Wait, maybe I’ll answer my own question. I have such thin filament. Most of us probably do. It’s the scrap we create when we prime our nozzles, especially when switching colors and running the old one out. Yes, that would probably do it!

    1. “but we should mention fiddling with your printer’s GCode directly isn’t without its risks”

      Maybe they figured prime holliday gift making time is not the right time to risk breaking their printers.

  4. I have scoured my links and can’t find it, but saw a blog post somewhere of a guy doing this in mid 2017. He was also using dry ice to cool the air the fan was blowing just below the nozzle so there was a significantly fast transition in temperature that was very accurately positioned between the nozzle and finished piece.

      1. That… is actually not a terrible idea. It would be well-insulated enough for a heated enclosure, as well. (I saw a project once where the lid of the freezer was attached to a cage that fit inside the body of it. They hung from a winch, and you could access anything inside without having to bend over just by winding the winch in.)

    1. A [trashbin] of my own heart! Open up a serial terminal, and type GCode in live, like you’re meant to. It’s actually very informative/fun/demystifying.

      Back in the early days of hobbyist 3D printing, we used to send GCode by kermit / xmodem. But before loading and sending the file, we’d jog the machine around, warm up the hot end, etc all by hand or script. Fun times.

      (I’m not sure this works any more. Does Marlin have some kind of keepalive signal that it sends that would prevent this from working? Can it be disabled?)

  5. Fun idea / video, but when you go back to the title: “3D printing extreme overhangs without supports” you probably get to an area where this can pretty easily be integrated into regular slicers to print big overhangs.

    From what I understand you print really slow during a big overhang and cool the just extruded filament to stiffen it up.

  6. Thanks for sharing really good article, but I have a question:
    Is it possible to print metal springs that have the same characteristics as the manufactured springs and if you can’t are there any 3D plastic alternatives that you can use?

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.