6

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

Pictures

First attempt

one

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:

Two

Tomáš Zato
  • 532
  • 7
  • 25

2 Answers2

7

Are you using the stock firmware of your printer? Sounds like to me that you have 16 tooth pulleys and your firmware is set to 20 tooth i.e. 80 steps per mm

The calculation behind the steps per mm is $\frac{\text{Steps per Revolution} \times Microsteps}{Teeth \times Pitch}$. The reason for this is that one revolution of the pulley will move the belt the number of teeth times the pitch of the belt. Now take the total number of steps, Steps per Revolution times microsteps, and divide by the distance moved giving the steps per mm.

In $\underline{most}$ hobby 3D printers you have:

  • 1.8 degrees steppers which equals $\frac{360}{1.8}=200$ steps per revolution , Less common is 0.9 degrees steppers $\frac{360}{0.9}=400$
  • GT2 is the most common belts now which have a pitch of 2mm
  • The two most common pulleys are 16 tooth and 20 tooth,
  • Depending on what stepper drivers and or configuration you have
    • A4988 $\to$ 16 microsteps
    • DRV8825 $\to$ 32 microsteps
    • Trinamic $\to$ 16-256 mircosteps

In your situation I believe you have a 1.8 degree stepper with 16 microsteps, a gt2 belt, and a 16 tooth pulley. Which means your XY steps per mm should be $\frac{200 \times 16}{16 \times 2} = 100$. While your firmware is expecting 20 tooth pulleys, yielding $\frac{200 \times 16}{20 \times 2} = 80$. This would result in your prints being $\frac{100-80}{100} = 20\%$ smaller, which explains your results with the circles.

Generalizing, the steppers, microsteps, and pitch don't matter. To go between 16 tooth pulleys to 20 tooth, multiply by $0.8=\frac{16}{20}$. From 20 tooth to 16 tooth, multiply by $1.25=\frac{20}{16}$.

Perplexed Dipole
  • 709
  • 1
  • 7
  • 14
5

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.

0scar
  • 37,708
  • 12
  • 68
  • 156