What Is the Horizontal Expansion Feature in Cura? Explained

While it’s not Cura’s or any other slicer software’s obligation to make it possible to manipulate a 3D model, as such a task falls into the domain of CAD software, such features, when present in slicer software, are definitely more than welcome additions that make things a whole lot more convenient for us.

In this guide, we will explain the function of the horizontal expansion feature in Cura, discuss the cases where it would be beneficial to use horizontal expansion for a better print and take you through how to activate this feature and configure it optimally for the best results possible.

What Is the Horizontal Expansion Feature in Cura?

In essence, the horizontal expansion feature in Cura makes it possible to shrink or expand the 3D model you have imported on the X and Y axes, allowing you to compensate for the dimensional inaccuracies that can occur between the digital model and the actual 3D printed part due to issues such as over-extrusion or imprecise movement.

cura horizontal expansion description


That being said, unlike Cura’s standard scale tool, which allows you to shrink or expand your 3D model on any of the axes individually, meaning that you can technically use it to change the X and Y dimensions of your 3D model in the same way that horizontal expansion does, the horizontal expansion feature will display a different behavior where the size of the empty areas on the 3D model will change inversely to the rest.

scaling x & y axes by 2 mm with cura scale tool example
Expanding the 3D model by 2 mm on the X and Y axes with the Scale tool

While this may sound unintuitive at first, the reason behind this behavior is to be able to compensate not just for the inaccuracies regarding the length and the width of the part but the part as a whole, such as when the empty spaces on the part turn out to be smaller than initially designed due to the plastic getting squished into them during the printing process, which standard scaling cannot resolve.

Going off the example of material getting squished and expanding as a result, which would cause the overall dimensions of the part to get larger while the holes inside it get smaller, applying a negative horizontal expansion value, which will increase the size of the holes while decreasing the overall dimensions of the part will make it possible to compensate for the squish in a quick and convenient way.

cura horizontal expansion examples


For instance, if you enter a value of 1 mm for the horizontal expansion feature, you will be expanding every single point that makes up the 3D model by 1 millimeter from each side, effectively causing the 3D model to be wider and longer by 2 mm on both axes and also cause the holes to become smaller due to each point taking up more space.

Even though this produces the same result as scaling the model up by 2 mm on both the X and Y axes with the Scale tool when it comes to the width and the length of the 3D model, as you can see in the example image below, the sizes of the holes are vastly different between the two 3D models, which is what we would need to compensate for dimensional inaccuracies.

cura horizontal expansion positive value example with comparison
Top: Horizontal Expansion (1 mm) | Bottom: Scale Tool (2 mm on X & Y axes)

On the other hand, if you go for a negative value, such as -1 mm when enabling the horizontal expansion, you will be shrinking every single point that makes up the 3D model by 1 millimeter from each side instead, which will both cause your 3D model to be shorter and narrower by 2 mm on both axes and at the same time, increase the sizes of the holes.

Once again, even though the X and Y dimensions of your 3D model will be the same as if you have used the Scale tool to reduce both the X and Y values, you will notice that the holes are considerably larger when you use the horizontal expansion feature, such as in the example image below.

horizontal expansion negative value example with comparison
Top: Horizontal Expansion (-1 mm) | Bottom: Scale Tool (-2 mm on X & Y axes)

While this may seem confusing at first, this effect is a result of the horizontal expansion feature practically expanding (assuming a positive value) each of the non-empty “points” (polygons) on the 3D model (you can think of them as the individual pixels that make up the whole image); which naturally creates a scenario where the empty areas of the 3D model become smaller due to each of the non-empty points taking more space as a result of the expansion.

horizontal expansion positive value example 2
Top: No Horizontal Expansion | Bottom: Horizontal Expansion (1 mm)

Similarly, in the opposite case of using a negative horizontal expansion value, shrinking each of the non-empty points effectively causes them to take up less space as a whole, and in cases where some areas of the 3D model have empty spaces, these spaces end up expanding as a result of these non-empty points becoming smaller.

horizontal expansion negative value example 2
Top: No Horizontal Expansion | Bottom: Horizontal Expansion (-0.25 mm)

Alongside the primary horizontal expansion parameter, which is the one we have been talking about so far, there are additional, more specific ways to use this feature through different parameters that you can also find in Cura; initial layer horizontal expansion and hole horizontal expansion.

Initial Layer Horizontal Expansion

The initial layer horizontal expansion parameter allows you to limit the effects of the horizontal expansion feature to the initial layer with no other differences in behavior.

While this may not seem necessary at first glance, the initial layer horizontal expansion feature actually makes it possible to manipulate the X and Y sizes of the initial layer alone, which isn’t something you can do by using Cura’s Scale tool.

As an example, if you enter a value of 2 mm into the initial layer horizontal expansion input, you will notice that the initial layer expands by 4 mm on both the X and the Y axes, with the sizes of the holes only being affected for the initial layer alone as well, such as in the example below.

cura initial horizontal expansion positive value example


On the other hand, if you go with a negative value, such as -1 mm, when setting up initial layer horizontal expansion, the result will be the initial layer shrinking by 2 mm on both the X and the Y axes, with the sizes of the holes growing, but only for the initial layer alone once again.

cura initial horizontal expansion negative value example


Hole Horizontal Expansion

The hole horizontal expansion parameter makes it possible to apply the effects of the horizontal expansion feature to the empty spaces on the 3D model rather than the non-empty spaces, which, unlike the standard horizontal expansion feature where positive numbers make holes smaller, causes the holes to become larger when you input a positive value.

This way, it becomes possible to shrink or expand the holes on your 3D model without making the 3D model longer or narrower on the X and Y axes, which can come in handy in scenarios where the only dimensional inaccuracies you’re facing are related to the holes, without any compensation required for the dimensions of the 3D model itself.

As an example, with a value of 1 mm for the hole horizontal expansion parameter, you will notice that the holes got just as large as if you enabled standard horizontal expansion with a value of -1 mm, but without the X and Y dimensions of the 3D model becoming smaller, such as in the image below.

cura hole horizontal expansion positive value example


On the flip side, when you enter a negative value, such as -1 mm for the hole horizontal expansion parameter, the holes will become just as small as if you have activated horizontal expansion with a value of 1 mm, but once again, without the actual X and Y dimensions of the 3D model becoming larger.

cura hole horizontal expansion negative value example


When to Use the Horizontal Expansion Feature in Cura?

While the horizontal expansion feature may not seem all that practical at first glance, there are actually quite a few different use cases where it can save you from having to modify the 3D model in CAD software, which, in comparison to getting everything done in Cura, would be a chore.

The primary use case for the horizontal expansion feature is to compensate for dimensional accuracies caused by your 3D printer when printing functional parts that require their measurements to be exact, both for the spaces inside the part and the actual width & length of the part itself, as even minor inaccuracies can create a scenario where the part becomes unable to fulfill its duty.

A perfect example of such a functional part would be gears (such as this set of 3D printable gears), which would require its standard dimensions and the sizes of the holes to be perfectly adjusted for it to fit in its intended place and turn without problems.

gear 3d model


When it comes to the initial layer horizontal expansion feature, the primary use case is to utilize a negative value to compensate for an unwanted increase in the initial layer area due to the elephant foot problem, where the initial layer ends up sagging as a result of it not cooling down quickly enough and starts sticking out from the sides as a result.

While we can consider this to be a band-aid fix, as there are other ways to solve the elephant foot issue, whether it’s reducing the bed temperature value or correcting your bed leveling, it can come in handy in scenarios where you need a quick solution, or haven’t been able to solve the problem in any other way.

elephant foot example
Source: X Builder @ Stack Exchange (CC BY-NC-SA 4.0)

Last but not least, the hole horizontal expansion feature will come in pretty handy whenever you need to adjust the sizes of the holes alone on your functional part, such as when you would like to resize a screw hole, whether it’s for correction purposes or for the purposes of using an entirely differently-sized screw, which will be a whole lot more convenient than re-designing the 3D model in CAD software.

gopro adapter with screw hole 3d model


With all these usage areas in mind, one downside that you should be aware of when using any of the horizontal expansion-related features is that it’s impossible to separate the X and Y axes, effectively meaning that you won’t be able to use different values for the X and Y axes or opt to expand (or shrink) only one of the axes while leaving the other one untouched.

So, as an example, in a scenario where the inconsistencies you need to correct are 0.2 mm on the X-axis and 0.3 mm on the Y-axis, using the horizontal expansion feature won’t be much of a help, as entering 0.1 mm as your horizontal expansion value will cause your 3D printer to undercorrect the Y-axis inconsistency by 0.1 mm and entering 0.15 mm will cause your 3D printer to overcorrect the X-axis inconsistency by 0.1 mm.

When talking of drawbacks, it’s also worth mentioning that horizontal expansion won’t play well with 3D models that have letters, numbers, or practically any form of text on them, as the changes in the dimensions will cause the text to become deformed, or even completely disappear based on the value you’re using.

cura horizontal expansion effect on letters


How to Configure the Horizontal Expansion Feature in Cura?

As the purpose of the horizontal expansion feature is to compensate, there’s no “right” or “wrong” value regarding configuring it correctly, with the optimal value being different for each case based on measurements.

So, to make good use of the horizontal expansion feature, the first step you will need to take is to take accurate measurements of the flawed 3D printed part, preferably with the help of digital calipers, and compare it to the measurements of the digital 3D model to find out the exact amount of inaccuracy that you will need to compensate.

For instance, if you have a 3D model where you have designed the holes to have diameters of 5 mm, but the measured diameters came out to be 4.8 mm on your 3D printed part instead, you have an inaccuracy of 0.2 mm at hand that you will need to fix.

Next up, since horizontal expansion will expand or shrink the holes from all sides (left & right for X, back & front for Y), you will need to divide the value you have found by 2 to find the correct horizontal expansion value.

Following our example from earlier, considering that you have an inaccuracy of 0.2 mm at hand, the horizontal expansion value you would need to use is 0.1 mm (0.2 / 2), which will allow you to enlarge the diameter of all the holes on your 3D model by 0.2 mm (while also shrinking the actual X and Y dimensions of the part by 0.2 mm).

Finally, one last thing to pay attention to when using the horizontal expansion feature, which usually applies to cases where you have more than one 3D model on the workspace, is to verify the positions of the models through the Preview tab before starting a print, as the dimensional changes caused by horizontal expansion won’t show up on the Prepare tab in the form of the 3D model scaling up (you’ll only see shadows as indicators), which can cause a scenario where two or more of the 3D models end up overlapping.

cura horizontal expansion causing overlap example


Conclusion

Even though horizontal expansion is one of the Cura features that you most likely won’t end up using very frequently due to its particular purpose of compensating for dimensional inaccuracies, it’s also one that will come in quite handy and save you from a lot of trouble when the need for it arises.

While it would technically be possible to achieve the same effect in CAD software as well, being able to make the necessary adjustments directly in the slicer software instead of having to modify the 3D model externally, especially if you aren’t familiar with any CAD software, is a considerable benefit.