Friday, September 25, 2015

Printing mechanical parts, part 1

Many of the mechanical and constructional parts that I have printed have not come out right. In particular, holes for screws and the like have been too tight, and I've needed to change the model or the printer settings to get them right. In this post, I'll describe some experiments on how different parameters affect this. This is all to do with static parts - can you get a bolt on a hole or onto a thread, for example. I aim to return to the subject in future and look at moving parts such as gears. I have been somewhat systematic, though this is far from being a scientific exploration.

Warning: this post is boring. Sorry, that's just how it is.

The areas I want to explore are:
  • given a bolt of some diameter, how large does a circular hole have to be for it?
  • given a hex nut of some exterior size, how large does a hole need to be for it?
  • given a nut designed to fit on a bolt of some diameter, what size thread will it fit on?
I did most of the tests using a M3 bolt and nut. I made an cuboid of about 3mm thickness, and put several circular holes and hexagonal holes in it. To get the base sizes right, I downloaded CAD models of bolts and hex nuts from McMaster-Carr's web site. I then scaled these and used Boolean modifiers in blender to either cut holes in the cuboid or merge them with it. The result looks like this:


The four extra cylindrical shafts are for another test that I decided not to follow through with.

The base size for the circular holes was M3 (3mm diameter), represented in blender as a cylinder with 32 sides. The other three holes used this scaled up by a 1.1, 1.2 and 1.3. The hex holes were made by using a 6 sided cylinder in blender, set to the same size as the CAD model of a hex nut. It was scaled by 1.05, 1.1 and 1.15. Note that I didn't expect anything to fit in the base size (scale 1) holes. They are just for reference. The bolts were scaled down by 0.95, 0.9 and 0.85. I picked all of these scale factors after some initial prototyping.

After printing, I tested the circular holes by inserting a M3 bolt into them.
Circular hole ratings:
  • Rating A means it won't fit.
  • Rating B means it fits but only if you actively screw it in.
  • Rating C means it fits without needing to screw it in.
  • Rating D means it fits easily.
The difference between C and D is a bit subjective. For most things that I make, I would want a C or D.

I tested the hex holes by fitting a hex nut into them.
Hex nut hole ratings:
  • Rating I means it won't fit.
  • Rating J means it fits tightly. The nut wedges firmly into the hole.
  • Rating K means it fits loosely. The nut does not stay in the hole.
I would want J or K, depending on the application.

For testing the screw thread, I tried threading a hex nut onto it.
Thread ratings:
  • Rating P means it doesn't fit.
  • Rating Q means the nut fits on the thread, but jams so you can't turn it far.
  • Rating R means the nut engages with the thread.
  • Rating S means the nut is loose on the thread.
Rating R is what we want.

Most of the tests were done with PLA from justpla. It's a cheap brand but has worked OK.

In the test results, I will quote the results of the experiments as the rating for each of the four circular holes, the four hex holes and the four threads, with the desirable values in bold.

Experiment 1: layer thickness

The layer thickness could make a difference. I would not expect to see much effect from this except possibly on the thread test, where the vertical resolution matters. The prints were at 100% infill.
Layer thickness Circular hole Hex hole Thread
0.2mm ABCC IIJK PPRS
0.3mm ABCC IIIK PQQR
0.1mm ABCC IIKK PQRS
There is some variation with layer thickness, but not very much.

Experiment 2: infill

For all the remaining tests, I used 0.2mm 100% infill, the first line on the table for experiment 1. I did one test with less infill. It's conceivable that the pressure from the 100% filled body could press in and shrink the holes. So here are the results with 30% infill.


Circular hole Hex hole Thread
30% infill ACCD IIJK PPRS
Infill makes a difference to the first test, with no effect on the others.

Experiment 3: extrusion multiplier

I have read on the RepRap forums that changing the extrusion multiplier in the slicer settings is a common way of overcoming holes that are too small. For this test, I reduced it to 0.85.

Circular hole Hex hole Thread
0.85 ext.mult. ACCD IJJK PRSS
This makes a small difference for both hole types. The "S" ratings for the thread means that the nut didn't engage with the thread in the slightest, more extreme than any of the other tests.

Experiment 4: slicer

I usually use Slic3r, and for one test I tried Cura. The results of this test shouldn't be taken too seriously, as I have not tuned the Cura settings. There are no results for the thread test, as the print had no usable results.

Circular hole Hex hole Thread
Cura ACDD IIJJ

Experiment 5: other materials

Lastly, I tried some other materials I had lying around: a PLA/PHA hybrid from Colorfabb, PETG, ABS and a different supplier of PLA. The ABS results are partial. I rarely print with it, and the piece curled during printing. There are no thread results from the ABS test.
Material Circular hole Hex hole Thread
PLA/PHA ABCD IIKK PQRS
PETG ABCD IIJK PPRS
Quantum 3D PLA ABCD IIKK PPRS
ABS ABCD IIJK

Experiments I did not run: print speed, nozzle diameter, temperature. All of these would be interesting to explore. Print speed, especially - the other two are likely to be constrained for other reasons.

It's hard to conclude much from this, and I think that is interesting in itself. I expected more variation with material, as different plastics allegedly shrink by different amounts. The infill and extrusion multiplier are the most important ones, as you have more opportunity to control them.

Recommendations when you are designing an object

Suppose you are designing an object. What should you do? These results suggest for interior holes you should make them a bit bigger than the nominal size. A good general factor is 1.2 for circular holes, and 1.1 for tight fitting hex nut holes or 1.15 for loose ones. For threads, scale them down to 0.9 of the nominal size.

Recommendations when you are printing someone else's designs

If you are printing someone else's design and the holes are too tight, you can reduce the infill or the extrusion multiplier. The second is better and gives you more control, but it may make threads unusable.

Do the results generalize to other sizes?

All of the tests so far were based on M3 parts. What about M4, as an example of another size? There are two possibilities here: you could scale pieces by the same factor I used above, or you could change their size by the same absolute amount. Here are results (with the M3 result repeated for convenience). Due to an error, I am missing the thread results for the absolute case.

Circular hole Hex hole Thread
M3ABCC IIJK PPRS
M4 scaled ABDD IJKK PPRS
M4 absolute ABDD IJKK

The "S" on the M4 scaled line was very, very loose. So this implies both the scaling and the absolute change have a much larger effect than with M3. This is annoying, as it means if you have a design, you might need to make different adjustments for different size holes.

Monday, September 07, 2015

E3D: reflections and refinements

In my last post, I said that I had started using an E3D lite6 hot end. Here I'll describe some modifications I've made and my reflections on this hot end so far. I haven't done much printing with it yet, and only with PLA, so there's more on the modifications than the experiences.

Also, a cure for unwanted hair.

The 30mm fan than comes with the E3D is noisy. It has a deep resonant vibration which was driving me nuts. I decided to reuse the 40mm one from the Folger extruder. With my old hot end, I had a fan duct which provided some cooling of the print. It's never been clear to me how much difference it makes, but I decided to add one in case it helps; the general opinion seems to be that some cooling helps when printing PLA. The 2-in-1 duct here looks nice on paper, and was not so good in practise. First, it gets in the way of seeing the nozzle. I like to be able to see what's happening, especially to check the first layer. Secondly, it doesn't fit very tightly. And thirdly, the walls are very thin so the whole thing is flimsy. You can break it in half with not much effort.

I'll come back to fixing the visibility issue in a moment. To make the fan duct fit more robustly I made a bracket that fits onto the same screws that hold the hot end mount I made earlier and onto one corner of the fan duct. This provides a bit of extra support, particularly against the fan duct rotating around the heat sink. While I was at it, I printed a holder for some LEDs replacing the one I had before. To make it easy to switch between fans and to decide whether to use the LEDs or not, I cut into the fan wiring and put in a socket, with plugs on the fan and LEDs. The LED mount is filled with hot glue to hold the components steady. As well as the three LEDs, there's a resistor, and a diode to protect against connecting it the wrong way round. Interesting observation of the day: hot glue is hot enough to soften PLA.

I did a few successful prints with this set up, and then some thing odd happened. The hot end wouldn't get above 180C when it was less than 10mm above the bed. PID autotune timed out. Based on this thread, I suspected the air flow from the fan duct was cooling the nozzle too much. After spending several hours scratching my head about this and trying alternative designs, I had a sudden revelation. The E3D instructions say set MAX_PWM in the firmware to 150. Well, don't do this. You just don't get enough power to the heater. Set it to 256 (the maximum), and not only does it fix the problem of not reaching full temperature, it means you can get from cold to 190C in about two minutes.

Once I had fixed this, I made a couple of modifications to the fan duct. First, I started with a variant which has thicker walls. Then I moved the vent back and up slightly so it is clear of the nozzle. Finally, I added a slot in one side, so that I can insert something to block the flow to the bed, inspired by another variant on Thingiverse, which I am now not able to find. It's too thin to take a printed piece, so I'll need to look for a piece of metal or thin and hard plastic. I haven't tried this out yet.

The end result looks like this:




Now back to the E3D itself, and my opinions so far.

I didn't have clear reasons for buying an E3D. It wasn't that I looked at my original set up and went: X is no good, I want to fix that. There were two main things that bugged me about the Folger hot end: it always oozed a bit when waiting (for example at the start of a print), and I got a lot of very fine hairs or spider's webs on prints that involved travel moves. You can look back a few episodes at the torture tests episode for examples. I bought it mostly because it seemed like a good thing which might in some vague way make things better.

What I have seen so far:

  • with the MAX_PWM change mentioned above, it heats up very fast.
  • the physical layout is nicer. I didn't like having the heatsink and fan attached directly onto the extruder motor as they are with the Folger extruder.
  • there is a little less oozing, but still more than I would like.
  • I still get spider's webs.
So all in all, it's not a clear cut improvement. It may prove to be better over time.

There is one footnote to this on the spider's webs. I had tried a few times to get rid of them by tweaking various parameters with no success. I think I have now found a formula which works. You need to increase both the retraction length (Slic3r settings > Printer > Extruder) and also increase the retraction acceleration (Marlin or in the EEPROM). I now use 3mm for the first and 2000 mm/s^2 for the second. I also needed to set 2000 as the maximum extruder acceleration. To test this, I created a small object shaped like a hockey stick, lying flat on the bed. Without these changes, there are hairs between the end where the travel moves are. With both changes they are gone. With either change individually, they are back. I'll see how this works on more challenging pieces in future. Here's a picture to show the difference: