Why is the printed object smaller than original model?

  • I am printing a small cylinder, but when the object is finished, it's smaller than the measures I used when create the model.

    I used thincerkad to make a simple model, the measures are:

    • width: 90 mm

    • height: 2 mm

    After the print was done, the actual dimensions were:

    • width: 70 mm

    • height: 2 mm


    First attempt


    The smaller object that's in the drawn circle was the first one printed, the dimensions I used were:

    • width: 110 mm

    • height: 2 mm

    Then I printed it again, and the result was:


    in reprinting: did you use the same gcode? did you resclice it? What does the Sicer tell you is the size of the disk?

    I used simplify, just generate the file with the g-code, copy to the pendrive, insert that in the print, and lets go.

    Good question, i Will try today with Slicer, but simplify show me the same measures than i put yo the model un the software

    Is it true that the first picture shows a 70mm output for a 90mm model, and that the second picture shows a 110mm output for a 110mm model? If so, something other than scaling (or wrong steps per inch) is happening. Also, what is causing the cross-hatching? That seems to be scale invariant.

  • 0scar

    0scar Correct answer

    3 years ago

    Let's do the math, you printed something of size 9 cm and got a size of 7 cm. This implies that the scale equals $\frac{7}{9}=0.778$. In order to print it at the correct size, you should have printed the object at scale $\frac{1}{0.778}=1.286$; so 28.6 % bigger, i.e. $1.286\times9=11.6$ cm. You printed at 11 cm, so the print should become smaller than the pencil drawn circle on the paper. This is actually what you see in the image you supplied.

    This can imply 2 things, you either scale the prints incorrectly to export to stl (but that is unlikely because the Z height is correct), or the steps per mm are incorrectly set in the firmware of your printer. The rotation of the steppers (usually 200 steps) need to be translated into linear movement; this depends on the used pulleys mounted on the steppers (typically used pulleys are: 16 or 20 teeth for belt driven X and Y axes).

    Calibrating the steps per mm of the extruder is answered in this answer. For the X and Y axis this works the same. If you have a Marlin based printer firmware, send G-code M503 to the printer over a terminal interface as e.g. OctoPrint, Pronterface (as part from Printrun: 3D printing host suite), Repetier-Host have, you can obtain the current values from the reply; these are listed under M92.

    That value for X and Y needs to be multiplied by 1.286 (as an example) to get the correct dimensions. You do this by sending G-code M92 like M92 X100.00 Y100.00 (see this answer that explains which values you should use based on pulleys you use, either 80 or 100) to the printer, to keep these values they need to be stored in memory using G-code M500 (note that the values 100.00 should be replaced by the values you get by multiplying the return values for X and Y from M503 by the 1.286 multiplication factor, only if the error is systematically increasing with print dimensions, otherwise stick to the calculated values from e.g. the Prusa belt calculator).

    Without the proper steps per mm, you will not be able to use the full potential of the bed. An alternative as scaling your prints by the appropriate scaling factor will only help if your scaled print is smaller than the bed size divided by that scaling factor, so no use of the full bed. Rather fix the firmware to fit the actual mechanical layout.

    Your answer is really awesome, tomorrow try your solution and tell you the result

    I believe that 7mm and 9mm measurements were not take with enough significant figures to arrive at the 0.778 and 1.286 values. Using these values to calibrate the Steps per mm will result in a mis-calibrated printer. You would be much better off using the calculated values from the mechanical properties of your printer.

    Further, calibraing steps-per-mm via measurement rather than mechanical properties is **always wrong**, because it will result in values that don't evenly divide nozzle width/feature width, thereby producing really bad aliasing artifacts in all the printed surfaces. If the measured value doesn't match what's predicted by mechanical properties, then you need to fix whatever parts are dimensioned incorrectly that are causing the discrepancy (e.g. stretched belt, ...).

    @PerplexedDipole ,R.. e.g. who says that a new belt is exactly 2 mm in width? Or whatever dimension of any part should be. It actually is a very good idea to adapt to your machine rather than counting on values. In the real world everything is produced with tolerances. Besides, the calculations show an example, with better measurements it would become more accurate, it is left as an exercise for the OP. There are some great stories to be found on people relying on hardware to be according to specifications rather than accounting for the actual sizes. I've been around to have seen examples.

License under CC-BY-SA with attribution

Content dated before 7/24/2021 11:53 AM

Tags used