Using CuraEngine with my Ender 3, I'm getting what I'd call inconsistent inner and outer dimensions - for example, a nominally 3 mm peg is significantly larger than a 3 mm hole, and it takes dimensions something like 2.9 mm for the peg and 3.1 mm for the hole to get them to fit. Is this level of error normal? Is it caused by overextrusion, or does CuraEngine run its paths along the curve of the slice rather than offset by approximately half the nozzle width inside the sliced region? The magnitude of the error being almost exactly 0.2 mm, which is half of the 0.4 mm nozzle diameter, makes me wonder if it's the latter.


Filament expands slightly as it is extruded. Also, the width of the extrusion depends on the volume of plastic extruded (not the nozzle size), as well as the amount that it is "squidged" down. Some slicers (e.g. Simplify3D) allow you to specify the width of the extrusion that you desire, but I'm not sure if Cura does this. You can fine tune the width of extrusions by adjusting the flow rate. Note that apertures get larger as nozzles wear out, but this should not affect the width of the extrusion very much since the determining factor is volumetric flow rate.

I would say that if you are getting a dimensional accuracy of +/- 0.1mm, you are doing pretty well. If you want to improve on this, you will need to calibrate your extruder and also monitor closely the average diameter of the filament that you are using. I have included a link to an external article, since doing this is beyond the scope of my answer. However, I doubt if it is possible to get push-fit accuracy with FDM printing without fudging the dimensions of the objects that you want to print.

3D Hubs: How to calibrate, tune and fine tune your printer and filament

  • 2
    $\begingroup$ The effect you are describing is called "die swell"; you can counteract this effect in the calibration of the extruder. $\endgroup$
    – 0scar
    Feb 9 '19 at 9:52
  • $\begingroup$ Do you know if Cura compensates for the width of extrusion it's attempting to produce by positioning of the path? Of course this won't solve the problem if the width of extrusion (after "die swell") differs from what it expects, but if it doesn't do such compensation I don't think any reduction in extrusion rate could fix this. $\endgroup$ Feb 9 '19 at 13:59
  • $\begingroup$ I've no idea. You could, of course, just examine the G-code. S3D sets a default line width of 0.48mm for a 0.4mm nozzle, whereas Cura just uses the nozzle diameter. Maybe S3D is trying to compensate for die swell? $\endgroup$
    – Mick
    Feb 9 '19 at 14:29
  • 1
    $\begingroup$ Interesting. Yeah, I probably need to dig into the gcode output to figure out what it's doing (or the source, but that's usually worse). $\endgroup$ Feb 9 '19 at 14:37
  • $\begingroup$ I'm not sure I'd call it "fudging." For a given material, and a reasonable range of hole sizes, you should be able to calibrate (much nicer-sounding word :-) ) the excess pin diameter and/or the loss of hole diameter. $\endgroup$ Feb 11 '19 at 19:00

Cura does correctly account for line extrusion widths wheen positioning the lines, and attempting to fix this with negative xy_offset was a mistake that led to lots of problems: in some cases, it completely eliminated tiny components of the model and left gaps in layers. At some point after asking this question, I did a new test with 8mm peg and hole, and I was actually able to force the 8mm peg into the hole (but not remove it) using tools, without cracking the parts, so I think past tiny sizes where dimensional accuracy is very difficult to achieve, everything is just about right.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.