No Need For Inserts If You’re Prepared To Use Self-Tappers

As the art of 3D printing has refined itself over the years, a few accessories have emerged to take prints to the next level. One of them is the threaded insert, a a piece of machined brass designed to be heat-set into a printed hole in the part. They can be placed by hand with a soldering iron, or for the really cool kids, with a purpose-built press. They look great and they can certainly make assembly of a 3D printed structure very easy, but I’m here to tell you they are not as necessary as they might seem. There’s an alternative I have been using for years which does essentially the same job without the drama.

Enter The Self-Tapper

A 3d-printed module featuring three M12 lenses on a rotatable turret.
This turret camera project features both inserts on the M12 lens holders, and self-tappers for the centre boss and the mounting screws.

When we think of screws or other fastenings, if we’re not a woodworker, the chances are that it’s a machine screw which comes to mind. A high-precision machined parallel thread, intended to screw into a similarly machined receptacle. Where this is being written they’re mostly metric, in fact I have a small pile of M3 bolts on my desk as I write this, for mounting a Raspberry Pi LCD screen. These are what you would use with those heat-set inserts, and they are generally a very good way to attach parts to each other.

However good an M3 bolt is though, I don’t use them for most of my 3D printing work. Instead, I use self-tapping screws. A self-tapper is a screw with a wide tapering pitch, designed to cut its own thread into a soft material. Most wood screws are self-tappers, as are many screws used for example with aluminium sheet. The material is soft enough for a reliable enough coupling to be made, even if repeated use or over-tightening can destroy it. It’s easy to make 3D prints that can take self-tapping screws in this way, I find it reliable enough for my purposes, and I think it can save you a bunch of time with heat inserts.

How To Make It All Happen

Designing for a self-tapping connection in a 3D print is simplicity itself: a suitable hole for the screw thread to pass through is placed in the upper side, while the lower side has a smaller hole for the thread to bite into. The size of the smaller hole can vary significantly without penalty, but I normally make it the diameter of the shaft of the screw without the thread. A simple example for a 3mm self-tapper in OpenSCAD is shown below, along with a render of the result.

//Screw head end
translate([0,0,20]){  //Move upwards to see both parts
    difference(){
        cube([20,20,4]);
        //screw thread
        translate([10,10,0]) cylinder(10,1.5,1.5); 
        //screw head
        translate([10,10,2]) cylinder(10,3,3);  
    }
}

//Screw thread end
difference(){
    cube([20,20,10]);
    translate([10,10,0]) cylinder(10,1,1); // For the screw to bite into
}

Assembly follows construction in its simplicity; simply line up both holes and screw the self-tapping screw into them. It should be obvious when the screw is tight enough. Mashing upon it, just like with any other self tapper, risks stripping the thread.

Everyone makes things in their own manner, and it’s likely that among you will be people who might decry the use of self-tappers in a 3D print. But I have found this technique to be a simple and cheap time saver for as many years as I’ve been 3D printing. I hope by sharing it with you, I’ve given you a useful tool in your work.

21 thoughts on “No Need For Inserts If You’re Prepared To Use Self-Tappers

  1. In my experience, not all self-tapping screws are created equal. There are generic “self-tapping” screws, those intended for metals, some made for plastics, and so on. Sheet metal screws tend to wedge plastics apart and don’t actually cut threads – they just mush plastic around, and that’s less effective in 3d prints. And screws that are self-tapping that are designed for metal tend to be too aggressive for use with plastics.

    I’ve had really good experience with screws like these from McMaster – https://www.mcmaster.com/products/screws/tapping-screws-2~/system-of-measurement~metric/stainless-steel-torx-rounded-head-thread-forming-screws-for-plastic/?s=screws+for+plastics – they’re intended for plastics, and if you figure out the correct hole size for your material, they work consistently in 3d prints. Usually well enough to get at least a handful of assembly/disassembly repetitions before the holes strip out.

    1. Yes, actually this is the code I usually use with selftappers from McMaster’s.

      $fn = 100; 
      handle_length = 150;
      handle_diameter = 30;
      reservoir_height = 100;
      reservoir_diameter = 80;
      nozzle_length = 50;
      nozzle_diameter = 10;
      tessellation_size = 10;
      
      module tessellated_surface() {
          for (x = [-reservoir_diameter/2 : tessellation_size : reservoir_diameter/2]) {
              for (y = [-reservoir_diameter/2 : tessellation_size : reservoir_diameter/2]) {
                  if (sqrt(x*x + y*y) < (reservoir_diameter/2)) {
                      translate([x, y, 0])
                          rotate([0, 0, 45])
                              cube([tessellation_size, tessellation_size, 2], center = true);
                  }
              }
          }
      }
      
      module threat_insert() {
          translate([0, 0, handle_length])
              difference() {
                  cylinder(h = reservoir_height, d = reservoir_diameter, center = true);
                  translate([0, 0, -1])
                      cylinder(h = reservoir_height + 2, d = reservoir_diameter - 5, center = true);
              }
      
          translate([0, 0, handle_length + reservoir_height])
              tessellated_surface();
          translate([0, 0, handle_length / 2])
              rotate([90, 0, 0])
                  cylinder(h = handle_length, d = handle_diameter, center = true);
          translate([0, reservoir_diameter / 2, reservoir_height])
              rotate([90, 0, 0])
                  cylinder(h = nozzle_length, d = nozzle_diameter, center = true);
      }
      
      threat_insert();
      
    1. Helps to file a thread cutter notch into the end of the bolt. Like a common ‘self tapping bolt’.
      Remove every few turns to clear the notch of cuttings, especially w small bolts.

      Also helps to heat the screw/bolt up.
      Friction will do the job, just turn it in and out as rapidly as you can for 10-20 seconds or so.
      This a second step, with a unnotched bolt in my process.

      Heated screws and bolts are generally a good trick.

      I print threads to make the job easier. They suck as printed, but the ‘tapping bolt’ fixes that right up.

    2. this approach works for 99% of use cases. threaded brass inserts offer little advantage other than in uses cases where assembly/disassembly is exceedingly common.

      I would love to see a comparative strength test between a couple of these methods, threading machine screws directly into an undersized hole, thermally pressed brass inserts, and externally threaded brass inserts.

      I would expect that in any use case where you can thread a machine screw to significant depth, it’s strength would exceed any brass insert.

      1. captive nuts are also fairly easy to do, model a hex, place nut in hex, then friction stir weld plastic in the corners to holt it in place. needs a hex hole a couple mm deeper than the nut being used. you can also use square nuts in slots that line up with holes in the pla when pressed. ive spent most of the 3d printer era stuck on a printrbot play with bed extensions (8x4x5), so joining sections together is necessary on anything larger than a project box.

        1. I agree, generally I just undersize the hex relief so that it holds via friction, you can even use a longer fastener to draw the hex nut into it’s relief.

          Something relating to fasteners that is infrequently discussed but equally important is fastener preload. Preload is even trickier with 3D prints, as you can not conventionally preload most fasteners without instead compressing your print.

          The “OEM” solution to this is line fastened holes with metal dowels, as the dowel will take the preload force without crushing. For low-volume 3D prints, dowels are often not worth the time investment. In this case, I think that preloading via friction (i.e. forming threads in an undersize hole) or using threadlocker (with a captive hex nut) are great alternatives.

  2. Perhaps this approach is also better from a standpoint of recycleability. Plastic with embedded metal inserts doesn’t lend itself to being easily ground up. We’re not at a point yet where recycling of printed parts is commonplace, but why create additional obstacles?

    1. make a screw attachment for your soldering iron and salvage all your brass. why throw away a perfectly good part because its stuck in plastic?

      the nut technique i mentioned further up usually just requires a screw and a hammer to remove. slotted square nuts can be made reversible and are easy to remove non destructively (unless your tolerances are too tight in which case break it out with a straight edge screwdriver).

      hardware is the first thing i salvage.

  3. I quite like self tapping screws for 3D prints. The main problem I have with them is that they are hard to specify. Any M3 screw will fit in an M3 thread, but it seems like no two self-tappers are alike. In 25 years of taking things apart, I’ve almost never found identical screws in two different things.

    If you go for the absurdly cheap screws from the usual places, buy them in bulk enough to last a few years, because there’s a good chance the listing will disappear and you’ll never find them again. Just make sure not to go too cheap. I currently have a large number of ones that look ok, but the heads snap off unlike anything I’ve ever seen.

  4. finally something about fasteners for 3d printing that i can agree with :)

    i figure people mostly use inserts for clickbait? in practice, i always use nuts with machine screws, sometimes i trap the nut, and sometimes i don’t. or sometimes i use wood screws if the piece behind it is made out of wood. while doing those, i noticed that wood screws and machine screws both will hold good enough on their own with no nut / wood, if i forget to include any extra tolerance in the hole. to echo macsimki: an M3 in a 3.0 hole holds great, so long as there’s enough depth to engage more than a couple threads. PLA and PETG.

    i just figure, if you actually care about strength then you should be putting the force through a proper nut. if you don’t care about strength, self-threading with any old screw will work great.

    just in my last few projects, i have been using zip ties instead of screws whenever it’s clever. and that has worked pretty well too. i’d do just about anything before messing with an insert, which seems to me to have the worst of all possible worlds…not very strong, not very cheap, not particularly easy, not already in my parts bin / multi-purpose, and not particularly tolerant of variation in hole diameter.

    1. seems to me to have the worst of all possible worlds…

      Or perhaps the best of all worlds as its exceptionally durable for repeat threadings, needs little Z height, across the x-y plane direction you can apply huge forces and it won’t pull out or tear through the part as the bare screw probably would having less load spreading, and when you’re talking 3d print the act of melting it in can cross bond a heap of layers and improve the layer to layer adhesion etc.

      All down to what you are planning to with the part as which one is best, not to mention there is a huge variety of insert options.

      I tend to just drive machine screws into a well toleranced hole with the powered screwdriver – part melt, part cut to form real threads and part just grabbing the printing artifacts I expect but it works well enough for only the cost of the bolt. I don’t like self tapping screws in 3d prints as a rule, the larger thinner blade like screw part has a tendency peel open layer lines a bit, needs many more perimeter or high infill density to not really weaken the part where it is cutting all those print lines, but done well its good.

      But for anything I expect to take apart often or short thread lengths screwing into a thinner part the captive metal nut or heat set insert has to the winner.

  5. I reliably found the extra length of the point to be annoying in my designs. You can find “self-tapping” screws from the usual sites that are blunt. Still have the coarse thread for soft plastics but can skip the wasted length.

  6. What I’ve been working on and with is a 3d printed “twist-lock” system.
    I’ve had success with it being surprisingly strong on pla, at very very small sizes, a few mm wide and a few more long. The core issue I’m experiencing is that actuating it multiple times can “wear” away material thus losing grip and causing a cascading failure. But I’m hoping that if I can get it right it would mean a print only, no fixture required solution for bonding.

  7. this is why i save plastic screws from salvage. my method is simple. figure out how many screws you need, find a screw type in that quantity. then take a caliper and measure inside and outside the threads, split the difference, and cad holes that big. im using pla, and like a less aggressive bite to resist cracking, and so far its worked. softer materials can probibly handle a slightly larger bite.

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.