Calibrate your 3D printer to print parts to fit

by whitemousegary, published

Calibrate your 3D printer to print parts to fit by whitemousegary Feb 26, 2013
6 Share
Download All Files

Thing Apps Enabled

Order This Printed View All Apps


Liked By

View All

Give a Shout Out

If you print this Thing and display it in public proudly give attribution by printing and displaying this tag.

Print Thing Tag

Thing Statistics

178629Views 34034Downloads Found in 3D Printing


( Just in case the text formatting were jerked up, the article in PDF format is available at http://www.thingiverse.com/download:2091544 )

I have my Thing-O-Matic for a year now. From time to time, I tried to calibrate it to print parts to fit. Finally, I got it done (See http://youtube.com/watch?v=lQbvfiZAm-c). It turns out I just had the edge width and the scaling wrong. If you also have the problem to print parts to fit, read this article. It might work for you too. Here are the symptoms of the problem I'm trying to fix.
1) A printed plug is impossible to fit into its printed hole.
2) Small parts (around 1 cm size) are too big, while larger parts (around 10 cm size) are too small.


Okay okay, let's see what our 3D printers should be offering first (if configured correctly). See http://www.youtube.com/watch?v=lQbvfiZAm-c . The video shows two parts, an S-Shape hole and an S-Shape plug http://www.thingiverse.com/download:141737 . The plug and the hole are edge to edge touching each other in the STL file. As show in the video, I can actually plug them together just by pushing real hard with bare hands, no tolerance compensations in the design, no drilling or filing, they just fit. The S-Shape is chosen deliberately as it shares a lot of common features with interlocking designs. Designing is fun with interlocking designs. ( A more fancy result, same premise, http://www.youtube.com/watch?v=O3dJsjv-8vA )

This article is intended for Skeinforge (SF) calibration, and I did my calibration with ABS plastics, Thing-O-Matic (0.4mm nozzle, firmware 4.1) and ReplicatorG+Skeinforge 50.

Before the calibration

Temperature will affect the actual amount of the extruded plastics and, therefore, the realized line width. Though it is not necessary, I strongly recommend you to figure out the strongest bonding temperature initially, see http://www.thingiverse.com/thing:35088 . You really need every bit of available bonding strength for printing large ABS objects.

If you are using ReplicatorG, please disable its user interface "Use Print-O-Matic". This named-funny-UI is just to override some Skeinforge variables without your notice. It is easier to calibrate your 3D printer to fit without this named-funny-UI . You can do it by unchecking the checkbox "Use Print-O-Matic (stepper extruder only)" in the "Generate Gode" window (See http://thingiverse-production-new.s3.amazonaws.com/assets/95/f2/da/5d/af/disable_replicator_setting.png ). If you insist to use the user interface "Use Print-O-Matic", you won't be able to adjust the infill width such that you would end up with a fragile printout (See Section Calibrate infill).

Here is the list of necessary variables for this calibration to work,

  • Carve/Extra Decimal Places (float) : change to 5
  • Carve/Edge Width over Height (ratio) : nozzle diameter/layer height
  • Inset/Infill Width over Thickness (ratio) : nozzle diameter/layer height (initially)
  • Dimension/Filament Packing Density (ratio) : needs calibration
    (equivalent to the reciprocal of the extrusion multiplier in Slic3r)
  • Scale/XY Plane Scale (ratio) : needs calibration

Before the calibration, you need to increase Carve/Extra Decimal Places (float) to 5. This variable is to control the significant digits of the values in a gcode file. There is no point to reduce precision at this point. Precision is king if you want to print parts to fit.

Calibrate line width

If you are having problems to print parts to fit, your 3D printer is probably drawing lines wider than Skeinforge expecting. In my case, SF is expecting 0.4mm, while my 3D printer is drawing 0.64mm (See http://thingiverse-production-new.s3.amazonaws.com/assets/b9/49/7b/db/d0/IMG_20130225_124259a.jpg ). The optimal line width that your 3D printer can do is the same as its nozzle diameter, so you want to enforce that to optimize its ability to print small features. To calibrate the line width to optimal,

  • 1a) set both "Carve/Edge Width over Height (ratio)" and "Inset/Infill Width over Thickness (ratio)" to "nozzle diameter/layer height".
  • 1b) set both "Speed/Feed Rate Setting (float)" and "Speed/Flow Rate Setting (float)" to the same value.
  • 2) print the thin wall model http://www.thingiverse.com/download:259710 , and measure the wall thickness with a caliper.
  • 3) adjust "Dimension/Filament Packing Density (ratio)".
  • 4) repeat Step 2 and Step 3 until the measured wall thickness meet the nozzle diameter. As a starting point, the new value can be estimated by (measured width)/(nozzle diameter) x (old value) .

The goal of this section is to fine tune the volume of the extruded plastics to match the expected line width. Therefore, Filament Packing Density (ratio) is not the only option. There are a brunch of variables which can alter the realized line width, e.g. e-step per mm , changing the flow rate relatively to the feed rate, etc... . Just pick one and stick to it. It probably can work just fine.

Just to remind you: when the amount of extruded plastics is too little, it will not make the wall thickness smaller than the nozzle diameter. Instead, you will have some spongy like walls with wall thickness roughly the same as the nozzle diameter (See http://thingiverse-production-new.s3.amazonaws.com/assets/3a/04/82/c9/c7/wall_calibrate.png ). If it is simply impossible for you to calibrate the wall thickness to the nozzle diameter, you may substitute the nozzle diameter by a bigger value (say 0.1mm bigger) and try again.

Calibrate scale

Once you have the line width right, you can go on to calibrate the scale, here is the procedure:

  • 1) Print the 20mm test cube http://www.thingiverse.com/download:139958
  • 2) Measure the size of the cube with a caliper (CAUTION: measurements must be done after the cube fully cool down)
  • 3) Divide 20mm by the measured size, and set the value to Scale/XY Plane Scale (ratio).

The measured size should become approximately 0.5% to 1% smaller than 20mm after the line width calibration, http://thingiverse-production-new.s3.amazonaws.com/assets/f3/c5/51/32/08/scale_calibrate.png . This difference is probably caused by the plastic shrinkage, which can be fixed by adjusting the xy scale. After the scaling calibrated, the ability of your 3D printer to print parts to fit should have improved dramatically. You can print the test plug http://www.thingiverse.com/download:139973 or the S-Shape plug http://www.thingiverse.com/download:141737 to verify. ( Note that, the S character in the S-Shape plug is not symetric. Fitting the S character upside down won't fit )

Please be reminded that, even after the line width and the scaling calibrated correctly, smaller holes (diameter smaller than 3mm) will still be too small due to the arc issue http://reprap.org/wiki/ArcCompensation . The Skeinforge Stretch plugin can handle the arc issue, and gets the smaller holes to fit. The Stretch plugin worths a shot, just enable it to try. The default setting is a little bit conservative. You might need to adjust "Stretch/Perimeter Inside Stretch Over Perimeter Width (ratio)". The default value is 0.32, and I need to increase it to 0.72 to get a perfect 2mm diameter hole.

Calibrate infill

If you did follow my instructions and reached here, you might have noticed something undesirable. The 20mm cube (15% infill) becomes very fragile (appliable to any non 100% infill objects). We can fix it by decreasing Inset/Infill Width over Thickness (ratio). The new value ...

  • Inset/Infill Width over Thickness (ratio) : (nozzle diameter - overlap)/layer height

In particular, I need 0.01mm overlap to enforce the infill lines to fuse with their siblings for 15% infill (of course, 0mm overlap for 100% infill). Note that, the ReplicatorG UI "Use Print-O-Matic" won't allow you to make this change; please, give up that UI.

The reason to the fragile printout is that: when you calibrate your line width, the surface beneath is rock solid; while the surface beneath infill is sparsely filled. Without a solid surface to support, the infill lines become narrower. Filling up areas with lines too narrow, we have the infill lines loosely bonded to their siblings, i.e. fragile.

You might be confused by the suggested change; indeed, you should be confused. The naming of edge width and infill width are awkwardly misleading. Both named after width, but behave in opposite manners. When you increase edge width, SF will extrude more plastic to realize the increased width, and spaces the lines accordingly. On the contrary, when you increase infill width, SF WILL NOT change the extrusion rate, but it will still do the spacing with the increased line width... (whatever...). Let me translate it for you. Edge width means the width of lines literally, but infill width means line spacing instead. So, if the infill lines are too far from their siblings, we decrease infill width (i.e. line spacing).

In case you really need some extra strength, you can consider using wider lines for printing. You can do it by simply setting (no need to calibrate line width again)

  • Carve/Edge Width over Height (ratio) : your desired width / layer height
  • Inset/Infill Width over Thickness (ratio) : (your desired width - overlap) / layer height
    Don't worry, using wider lines is perfectly fine if Skeinforge knew it.

Something counter intuitive about the calibration

There is one thing worth noting that my 20mm cube before the line width calibration is actually closer to 20mm in size (See http://thingiverse-production-new.s3.amazonaws.com/assets/f3/c5/51/32/08/scale_calibrate.png ). This is a little bit counter intuitive. What really happening is that ABS plastic will shrink (a lot) after they cool down. So, if the dimension is right before any scaling, the size of a printed object should always be smaller than we expecting (See the second graph). We can also see why it is so using the first graph. In the ideal scenario, the mapping between the ideal size and the expecting size is a line with a 1:1 slope. The wider than expecting realized lines shifts the mapping upward, and shrinkage makes the slope less steep, so we have a small range of good mapping near the intersection (See the first graph). ^^"... a small range of good mapping is probably the most devastating form of misleading clues ever possible.

Two popular wrong interpretations

By the way, I would like to clarify two popular wrong interpretations of the problem. When I look for reasons for the symptoms above in the internet (See Thing_Info/Description), I keep seeing people saying it is caused by "plastics shrinkage" or "the arc issue" http://reprap.org/wiki/ArcCompensation . For "plastics shrinkage": its true that plastics will shrink after they cool down, so a printed hole (e.g. http://www.thingiverse.com/download:139973) will become smaller. However, its printed plug will also shrink by the same amount. Therefore, a printed plug should fit into its printed hole regardless of shrinkage. For the arc issue http://reprap.org/wiki/ArcCompensation : it will only affect smaller holes, not the larger one. The author is too conservative when he deduces the implications of the formula in the page. ABS plastics can tolerate a tiny bit of deformation. From my experience, if you try to fit a metal rod into a smaller ABS hole, as long as the difference in diameter is within 0.05mm, a fit will still be feasible (the tightness will vary though). To make it easier to read, I re-parsed the table (see http://www.thingiverse.com/download:139948 ). It shows that a 10mm diameter hole will be 0.008mm smaller than it should be, which is not enough to cause a tolerance problem. To a pair of hole and plug, the arc issue will only become a problem unless the diameter is smaller than 3mm.

This is it. The information mentioned here is probably mentioned somewhere else already. I just meant to put them in an organized manner as a note for myself. If I missed a citation, please show me. I'll put it back.

Yours faithfully,

PS: 2013-05-01 - My 3D printer is delivering printouts reliably with precision and strength for quite a while now. It's time for me to say goodbye to test shapes. For the time being, I kept a small portion of the test shapes I printed for some good reasons. This is the last picture of them before I throw them all away, http://thingiverse-production-new.s3.amazonaws.com/assets/be/9a/23/9c/e8/IMG_20130501_070417.jpg . Cheers, fingers crossed...

Troublesome shooting

Why the wall thickness didn't change after modifing the Dimension/Filament Packing Density (ratio)?

  • Did you press "Save all" after editing profile?
  • Did you re-generate G Code file after editing profile?
  • Are you using the profile you edited in the "Generate GCode" window?
  • Are you using Skeinforge 50 and the latest firmware?

Do I need ReplicatorG for this calibration to work?

  • No, you don't need ReplicatorG. This article is intended for Skeinforge 50, not ReplicatorG. You just need Skeinforge for this calibration to work. ReplicatorG is not necessary at all.

There are two thin wall models. Which one should I use?

  • Use the one matches your expecting line width. (e.g. 0.4mm line width vs. 0.4mm thin wall; 0.5mm line width vs. 0.5mm thin wall)
  • Both should should be just fine initially. However, when you calibrate the infill width to a smaller value, SF might think the thin wall model should be filled (which can mess up your measurement). Using a matched thin wall model can stop SF from filling the wall.

Will this method work with older versions of Skeinforge?

  • Cautiously, yes. For the older versions of Skeinforge, the ways to adjust the realized line width is limited to "changing the feed rate relatively to the flow rate" or "messing directly with e steps per mm". ... (there is no point to stick to the older versions anyway. why bother?)

More from 3D Printing

view more

All Apps

Auto-magically prepare your 3D models for 3D printing. A cloud based 3D models Preparing and Healing solution for 3D Printing, MakePrintable provides features for model repairing, wall thickness...

App Info Launch App

Kiri:Moto is an integrated cloud-based slicer and tool-path generator for 3D Printing, CAM / CNC and Laser cutting. *** 3D printing mode provides model slicing and GCode output using built-in...

App Info Launch App
KiriMoto Thing App

With 3D Slash, you can edit 3d models like a stonecutter. A unique interface: as fun as a building game! The perfect tool for non-designers and children to create in 3D.

App Info Launch App

Print through a distributed network of 3D printing enthusiasts from across the US, at a fraction of the cost of the competitors. We want to change the world for the better through technology, an...

App Info Launch App

Quickly Scale, Mirror or Cut your 3D Models

App Info Launch App

Treatstock is an online platform that offers decentralized manufacturing services such as 3D printing and CNC machining for business-to-business and business-to-consumer sales all over the world. W...

App Info Launch App

3D print your favourite design with NinjaPrototype, a professional 3D manufacture with consistent quality and speed.

App Info Launch App

I was unable to find a printable STL for my thin wall test, per your guide, so I made a customizer version. Unfortunately customizer is broken, so I've also uploaded several thicknesses as STLs as well. https://www.thingiverse.com/thing:2797478

Rounded wall for calibration - Parametric

i know in matter control the width can be set by the program so when i print the square. i get a width of .2 mm which is what the width is set to on my specs.

What is the calculation for xyzsteps? it's like 20/measured value * current motor steps?

Step per mm for X axis and Y axis should be set to their theoretical values initially. For most FDM 3D on the market, the usual setup would be 200 steps per revolution steppers , stepper drivers with 16 micro stepping and GT2 timing belt with 20 teeth gear. Putting all this information together, you would have ...
STEP_PER_MM = ( total number of steps per revolution ) / ( length per revolution )
= ( 200 x 16 ) / ( 2 x 20 )
= 80 (steps/mm)

Depending on the quality of your hardware installation and the tension of your timing belt, the actual step per mm will deviate from the theoretical value considerably. That's why some users would find that they couldn't even print a square right ( when the actual X step per mm and Y step per mm are not the same).

In this case, you can print a 20 mm square box, and adjust the step per mm values for X and Y axis accordingly, i.e.
new value = 20/measured value * current motor steps

However, this adjustment accounted also for the shrinkage of your materials (besides the quality of your hardware installation and the tension of your timing belt). So, when you switched your materials (say from PLA to ABS), you would, more than likely, need to scale X and Y axis to get the dimension right.

For Z axis, it wouldn't be affected by the material shrinkage in the way X and Y axis do. So, no material-wise adjustment is required. By the way, the theoretical value works just fine already in most cases.

( ^^", I'm not quite sure what you are asking. If you were actually saying that there are something wrong in my article, please be more specific, coz' I didn't mention any step_per_mm calibration in the article. I just simply assume that all step per mm values had set to their theoretical values initially. )

My thin wall calibration is 0.40 on the dot, my cubes are 20mm.. but my s plugs wont go together. What am I doing wrong?

Which slicer you are using? In some slicers, they implemented an ad-hoc solution to handle this problem, which is insetting the boundary a lot more than it should be (the inset should always be half the line width, e.g. 0.4mm line width, inset by 0.2mm). The ad-hco solution, though intuitive, doesn't work in general, and it could mess up your calibration.

I eventually realized that while XYZsteps calibrate the outermost dimensions, Esteps scales the actual inside parts of the model. My esteps got reduced by 20% before my parts fit but they fit quite well now.

Hi, when I try to print some of these objects, they either have zero layers and print nothing, or just one layer. What am I missing? Trying to use MatterControl for a Rostock Max v3. Thanks!

i have the same problem

try changing the slicer used in matter control you have three options if i have a real issue i use simplify 3d

During the line calibration section it references some variables to set, but i can't find where to set them in replicatorG

The bits under "Here is the list of necessary variables for this calibration to work,"

Any advice would be appreciated :)

In the ReplicatorG window menu, there is an item called "GCode". Under the menu item "GCode", there is an item "Edit slicing profiles...". Click on it, and you should see a list of profiles. Click on one of the profile in the list, and then click the button "Edit". Then, you should see the profile window.

There are many tabs in the profile window. Check the name of the taps carefully. The listed variables are presented with tap name followed by a slash followed by the variable name. For instance, "Carve/Extra Decimal Places" means the tap name "Carve" and the variable name "Extra Decimal Places".

However, please be reminded, some vendors will modify ReplicatorG, and remove the menu item "GCode" from the window menu. So, if you are using the ReplicatorG provided by your vendor, you might have the menu item "GCode" missing. In this case, just download the latest ReplicatorG from the official site. Don't worry. The vendors who do something stupid like this are unlikely making novel things. So, you don't really need their ReplicatorG in the first place.

Thank you I will try this!

One small hurdle I found that wasn't mentioned here, that's obvious in retrospect but may save some head-banging: when adjusting the Scale/XY Plane Scale options, you have to make sure to also set "Activate Scale" to "True" in order for it to actually take effect. My installation of ReplicatorG came with that "False" by default, so my scale wasn't having any effect.

Thanks for this guide, it really pulls a bunch of things together and explains well!

Any tips on getting the plug to fit the hole when everything else is measuring correct?

I have a Wanhao Duplicator i3 clone ( Cocoon Create ).
Initially prints looked fine, until I started making things that had to fit together. I am finding the sizing is slightly off meaning things like the plug and hole test do not work.
I ran through the calibration steps from this page as best I could but one thing I am finding is the line sizing doesn't appear to be right.
I tried to print the 0.4mm wall box as my print head is 0.4mm, but Cura won't allow me to print. It just says print time is 0 minutes. I exported the Gcode and hit print. It heated the bed, went to the home position, and then stopped saying it had finished.

So then I printed the 0.5mm wall box. The walls came out as being 0.78x0.93x0.62x0.72. This is either due to the print head size vs the wall size, or that it's extruding too much but inconsistently.


I have ran through all the Cura settings a number of times trying different profile recommendations, including the one from Cocoon Create themselves. All the prints have the same issues; plug and hole don't fit, 0.4 mm box won't print, 0.5mm box walls are inconsistent.

Does anyone have any ideas of what I can look into?

^^, please provide more information.

I managed to get the 0.4mm box printed. The closest I could get the 0.4mm box wall was 0.65mm but at this level the layers were not joining properly. This was adjusting the extrude rate. I also tried slic3r with various settings.
I found a profile for slic3r and cura for my machine. Those two profiles created created a ball of plastic stringing together.
I looked at the extruded amount also. I did this by measuring a mark on the filament, then extruded at amount. I marked 100mm, extruded 100mm, but I was still left with 10mm not extruded. This seems like it was not extruding enough and changing it would make the lines thicker. I adjusted this anyway so it matched perfectly but then like I expected, the 0.4mm box wall was 0.9mm.
Is anyone able to confirm that the 0.4mm box and the plug/hole design are able to be printed correctly on the Wanhao Duplicator/Cocoon Create?

Maybe sounds dumb but is it printing a single perimeter? Some slicers try to squeeze two perimeters, making double or close to double your nozzle diameter, did you ever fix this?

Wow, what a wall of text. Hard to read. Consider leaving some white space in ling texts

The text formatting of thingiverse.com (Markdown) changed quite a bit since my last editing. I updated a bit. This is what the article supposed to be. ^^

Comments deleted.

Make sure you either turn off Fill, or set the Extra Shells to 0! :) They were all set to 1 for me so the wall was coming out at .8mm instead of .4mm. Problem solved.

I have Sailfish on my Thing O Matic and no matter what I change the Filament Packing Density Ratio to the wall thickness is always .7mm. I'm sure that I'm saving the changes and regenerating the G Code. I'm really confused as to why it makes no difference. I've tried various values from .5 through to 2! Any ideas?

Are you using the profile you edited in the "Generate GCode" window?

Yes, at least it looks like it. It's called TOM Calibration profile so it stands out compared to the others. Maybe I'll try turning something else on or off to see if anything is working.

Fantastic instructions! This should be part of the skeinforge help section! (Like..."Getting started with SF"). Bookmarked, copied, backed up.
The only thing I found I needed to do after this was increase my top layer thickness (under Fill > Enable automatic solid surface thickness. (I used 0.8mm). Otherwise, at 15% fill, the top layer was sparsely filled. (I needed to do the same with Slic3r too)
This is will be one of my go to processes now. Thank you! (for the record, I am also a flashforge creator pro owner).

followed these directions on my flashforge creator pro and it worked out beautifully. S plug fit nice and snug. Thanks for the write up!

so what shell thickness should you have with a 0.5mm Head?
I have it set to 0.8mm

The optimal line width that your machine can do is the same as the nozzle diameter, so the optimal line width for 0.5mm nozzle would be 0.5mm.

While the line width cannot go smaller than the optimal one (See Section Calibrate line width), the line width can be bigger than the optimal one considerably. As long as you made sure the realized line width is the same as your expecting line width, using 0.8 mm line width will be just fine.

Line with of 0.8 is too big I get 2 parts that will not fit inside each other. I set all Perimeters Manually to 0.5mm and Ill let you know the Results of the Manual settings It was showing a thickness of 0.53mm the Model is always A little bit off I am using Pronterface and Slice3r so most perimeters are automated so I have to Edit the G-code and set them to 0.5mm

Slic3r is hopeless to be calibrated. Its just way too... "smArt".

Anyway, it is feasible calibrate your machine to print with snap fit precision, just, not with Slic3r. By the way, someone said he found a way to calibrate Slic3r (See http://www.thingiverse.com/thing:342198 ). You can give that a trial, though I am a bit skeptical for the reason that Slic3r is... "smaRt".

Part Fitting Calibration
by MEH4d

I would like to make you aware of a discussion started in another Thing, meant to do calibrate printers too: http://www.thingiverse.com/thing:342198/#commentshttp://www.thingiverse.com/thi...
I am convinced that calibrating extrusion by measuring single-walls is misleading because some softwares (Slic3r) assume the threads are rectangular, but that happens only when they are surrounded by other threads and not in single-walls: the thread of single walls is rounded on the sides. If you calibrate your way, you may incur in a suboptimal thread bonding (on the sides) and weaker prints than they could be. It seems you can compensate in other ways with skeinforge, but it is still good to know.

Part Fitting Calibration
by MEH4d

I am getting a strange space in my prints.
What might be causing this? I tried messing with

For some reason i can not delete or edit this comment so please ignore this one. The one below has more information

I am getting a strange space in my prints.
What might be causing this? I tried messing with Infill Width over Thickness but that does not seem to help.

I had to change the URL slightly to get to the image, but after going to http://imgur.com/V1P3lZW an image of what I'm seeing shows up. I could actually peel the outer layer off the 20mm calibration "cube" as it wasn't attached much at all to the inner layer. I saw a comment below suggesting to reduce the infill, but I reduced to 10% and it still has the same issue. I'm printing the S-plug now, but I'm thinking I need to either increase the line width or somehow increase the overlap between lines everywhere.

I'm not quite sure what you are asking. I guess... its about the gap issue, right? If that so, can you tell me which slicer you are using? and which 3D printer?

I saw a comment below suggesting to reduce the infill, but I reduced to 10% and it still has the same issue.

No. Not related at all.

I'm printing the S-plug now, but I'm thinking I need to either increase the line width or somehow increase the overlap between lines everywhere.

Yes, you can have some more overlapped lines by deliberately fooling the slicer with a wrong line width. Unfortunately, any of those extra line width for fooling will go outside the boundary, and defeating the very first purpose of why you are here.

Did you also have the scale right? If not, it can be the reason to your problem.

Yes, it's the gap issue. The S-plug came out pretty good, but also had the gap all the way around the edges: around the outside circle, around the male S and the female S. The fit was also what I think is considered loose, it fit together without any effort and wiggled just slightly.

By the way, I have a Flashforge Creator X and am using the Skeinforge (50) slicer with the Print-O-Matic off, and the Thing-O-Matic slicing defaults, all within ReplicatorG-0040.

I just changed the Inset/Infill Width Over Thickness from 2.0 to 1.75 and printed the 20mm calibration box. The gap around the perimeter of the box is still there, but the top does look better with smaller holes between lines on the top surface. I think I will try reducing this parameter a bit further tomorrow. Do you think this is the right thing to adjust?

I believe the scale is correct, the first box I printed was 19.67mm, but the one after I adjusted the scale was 20.02mm, and this last one that I changed the Infill Width Over Thickness was 20.04mm.

Thank you for putting this description together and for helping me further, this is an excellent description and very helpful.

... The fit was also what I think is considered loose, it fit together without any effort and wiggled just slightly.

In this case, you really have a problem in the mere calibration steps. I guess your line width calibration is way off. Please recalibrate line width. When the amount of extruded plastics is too small, you will still get a thin wall with wall thickness roughly the same as the nozzle diameter.

Try to recalibrate your line width, and this time, adjust the Filament Packing Density Ratio to an arbitrarily smaller value before the calibration. The arbitrarily smaller value should be small enough, such that the wall thickness of thin wall is comfortably bigger than your expecting line width.

By the way, are you sure your caliper is working properly?

I think my caliper is working properly. When I first got the 3D printer, I measured the thickness of a piece of paper and it was as expected, then when measuring the diameter of the filament it was 1.78mm, so I am confident it's correct.

I tried to recalibrate the line width starting with 0.5 for the Filament Packing Density Ratio, and the first print came out 1.21mm thick, resulting in a new setting of 1.5125, which was larger than what I was using prior to this recalibration. So, I went back and am trying the 20mm box with 1.472625 for the ratio, which was the setting just before I achieved the 0.4mm line width during the first calibration. By the way, I measured the outer layer of the first box that I peeled off the first box I printed and it was only 0.37mm. It seems like the box printed with a thinner line width than the hollow box.

It finished, no luck. The outer layer still peels off. I'm going to try increasing the overlap. I'll post shortly with a status.

I'm not quite sure what causes the gap issue. I'm don't have this issue with my printer. Could it be a hardware problem?

I think I finally figured it out. It looks like the layer thickness was set to 0.27mm, but I've been calculating everything for a 0.2mm height. I changed the Carve/Layer Height to 0.2 and am redoing all the calibrations.

That did it! I'm not sure why mine was set to 0.27mm for the layer height, but that fixed it. The last 20mm box came out virtually perfect, I just need to scale it down slightly now. Thank you! This will increase the usefulness of my printer immensely.

I am wondering if I'll need to go through all this calibration again when I print something with a different layer thickness, of if I can just scale things appropriately. Now my next step will be to eliminate the blob of plastic when the first layer of the object begins (not the blob in the front-left corner of the print bed, the one in the object itself); I think I read somewhere how to change the start gcode to eliminate that blob.

morfittron, did you ever find out how to remove that blob in the object? I'd like to know myself, can you post the link?

By the way, not just layer height can be changed without redo-calibration, line width can also be changed without redo-calibration.

... I am wondering if I'll need to go through all this calibration again when I print something with a different layer thickness ...

No need to "go through all this calibration again" for changing layer thickness.

Change "Carve/Layer Height", and adjust "Carve/Edge Width over Height (ratio)" and "Inset/Infill Width over Thickness (ratio)" accordingly. This would be good enough already.

Thanks so much for this guide. It increases my satisfaction with my thing-o-matic by at least 50%. I come back here every once in a while to re-calibrate.

Thanks a lot. By the way, please tell me something about my writing. Is it good enough to you? ( Part of the reason for me to write is to improve my writing. )

The writing was good. I found it very easy to follow.

I have noticed that on my test cubes the sides then to bow inwards a bit, and the corners stick out a little bit. So if I measure the corners the size might be 0.2 mm larger than if I can avoid touching the corners with my calipers. I know this wasn't covered, but maybe you had an idea how to fix this?

I have noticed that since the very first time I tried to do calibration. The simplest way to get around this problem for the measurement is to measure the central part of the cube only.

However , the real solution is to add a fan for printing. With a fan for printing, the problem you described will be no longer visible. Your caliper might still able to pick it up though.

You have to take into account the thickness of the bead layed down by the printer eg nozzle size would calculate how big the bead of plastic layed down is or.. google it :)

Arr... please read thoroughly, it just takes you ten minutes to read... I have made myself clear enough in the article concerning the issue you said. If you think I didn't address your problem, please be more specific.

Hello, i am uploading to simplify3d the test 4mm, but somehow it shows just one wall , this is very strange...
thanks you in advance

hmm... ive found that is an issue with 4mm object that is in the limit of the nozzle, i scaled the object by 1.0001 and now it shows , is this ok to calibrate like this ?

Update it dose not fit to the Wanhao printer, i guess neither to the flashforge

Shame on Wanhao. Manufacturing an open source product for sell is fine. Taking the open source product and claiming its invention?! WTF!!! Shame on Wanhao!!! ( Note: The Wanhao printer is just a direct copy of Makerbot Replicator.)

Hi there, i am a new user and i am trying to do my best to calibrate my printer (wanhao 4x),
I also use simplify3d, can this method be used also with simplify3D ?

"wanhao 4x" looks like a Makerbot Replicator (^^" I should say it is.). This method should works fine on most extrusion based 3D printer, so Replicator is okay. "simplify3D" looks like a forked Slic3r. If it indeed is originated from Slic3r, look for a parameter called "extrusion multiplier". However, to Slic3r, there is no obvious way to adjust "infill width" like Skeinforge does, so you can either have accurate but fragile parts or inaccurate but strong parts.

yes there is the "extrusion multiplier"

Anyone ever had their line width vary by as much as .1mm on each side? I'm trying to get a .4 line width but one side will have .45 and the parallel side will have .55mm

Mmm... I guess you have a terribly extruder. Say... a long long metal tube connecting to the hot end with no fan, a driver gear with its hole far far from center, a printed extruder with long thin moving parts, ... (^^ I can go on for quite a while)

One more piece of information would be useful for beginners--where does one find these parameters? It's easy to find the Generate GCode ones, but the others must be hiding in some file somewhere...

^^", Skeinforge is full of parameters. If the user is using Skeinforge directly, he must have overwhelmed by parameters already. In case of ReplicatorG, user can locate a profile by MENU/GCode/Edit Slicing profiles... .

Thank you my friend! This worked flawlessly and am now printing extremely functioning parts.

This is the most comprehensive calibration procedure I've ever seen. I'm not even done with the full calibration and I can already see a significant difference in print quality. Thanks!

Glad to hear that. Please tell me how's your machine doing after you did the full calibration. It would be excellent for me if you can report flaws in the article.

Just finished 4 Wall-Blocks on my RepRapPro.
In Slic3r i adjusted the extrusion multiplier to change the flow ratio.

0,5mm Nozzle
Test1: Flow Ratio 1 Wall 0,79mm with standart settings (callibrated the Steps/mm of extrusion material before)
Test2: Flow Ratio 0,9 Wall 0,7mm
Test3: Flow Ratio 0,8 Wall 0,63mm
Test4: Flow Ratio 0,6 Wall 0,48mm

I'll have to check tomorrow in the sunlight how smoothe the surfaces came out. the biggest difference yet is the teh stability when squeezing

is that file just for ABS? i am using pla and i print the wall veryvery thick, it is around 1.2-1.3mm thick, my nozzle is 0.4 mm, i dont know what's wrong,

and it seems that no matter what speed i input, theedge width is still that thick

it's not feed rate alone causing the different. The ratio between feed and flow rate does. The Print-O-Matic UI explicitly makes the ratio to be 1. Therefore, with that UI, you cannot change the ratio, which is why all speed s give you the same line width.

I did what you suggested, and things are much better now, but both my pegs and holes are a tad small when measured. However, the larger dimensions are perfect. Also, if I have 2 perimeters, there tends to be a slight gap and poor adhesion between them. Thoughts?

if you can get S Plug to fit, you almost get the most out of you printer already. Scaling is an issue. The brutal truth is we need a way more intensive geometry analysis to enforce extremely demanding precision requirement. There is no way a simple implementation like skeinforge can fulfill it. Switch to PLA will ease a bit the problem.

I have the same problem with Slic3r. I'm going to try to follow the idea of this, but does anyone know what exactly to change for the same effect in Slic3r?

slic3r will decide line width on its own upon different circumstances, with good intentions. However, it also make it extremely difficult to have a simple plan to do calibration. I think the best you can do is to follow the calibration process suggested by slic3r. If it doen't work, switch to skeinforge.

After much wailing and gnashing of teeth, I have switched to Skeinforge. Your guide is thus far very helpful for calibration.

i got replicator 2x, i use makerware makerbot slicer and i have the same problem as jad91. for the 20 mm box i must scale x:1.005 y:1.015 z:1.01 to get the good dimension +/- 0.03. i try to edit a new setup in skeinforge slicer in makerware but if i activate chamber to heat my bed, the print fail but if is not activated, it print but don't stick. aaaaaaaaaaaaah!

I'm sorry. I don't have replicator2X, and therefore, no idea about the usage of makerware. If you bought a replicator2X, you should request helps from customer services. You paid A LOT for that.

yes i know...but i can use another slicer too. i look for another printer specialy for nylon. you have suggestion?

Success! My TOM is now making parts that can interface with real world objects. Thank you I can now print useful things instead of just trinkets to clutter my desk.

where you got this green pad from? thx

It's worked well for me. I am having some slight trouble though; when I print the wall model, there's a difference in the thickness between the x and the y directions. In reality, the discrepancy is so minute that it shouldn't matter overall for the prints I do. It is just a curious situation, and my OCD is nagging.

Both walls that run from +X to -X (right/left of printer) are perfectly 0.40mm, while both walls in the +Y to -Y (forward/backward) are at 0.43mm. It prints like this consistently, and I've measured it like that consistently.
Since it was so small, of a difference, I tried moving onto the next model, 20mm cube.

The +X to -X directions are 20.10mm and the +Y to -Y directions are 19.90mm.

Like I said, in the overall scheme of things, it probably doesn't matter much, but it'd be awesome to get it to work perfectly.

Any thoughts on what could be causing this before I move on to try to calibrate skeinforge for holes?

Printer: Replicator
Software: ReplicatorG
Slicer: Skeinforge 50
Nozzle Diameter: 0.40mm
Layer height: 0.10mm

xy dimensions are designed to have the same gear ratio, so the same step per mm theoretically. However, nothing is perfect in real world. For whatever reason they didn't match, you can always adjust one of the step per mm to enforce them to match. If you are using ReplicatorG, there is a folder, called machines) under ReplicatoraG folder storing all machine profiles. You can do your adjustment there. You can try increasing "y step per mm" to 1.01 times the original (i.e. 20.1/19.9). It should do fix your problem.

Please leave me some comments. I really want to know how's the other 3D printers doing.