Greg Valiant, That's an awesome deduction, and appears to be spot on. I was having issues with this as well and your solution of setting hole expansion to 0 has solved it. Guess I'll just have to post print drill the holes to the correct size!
Having said that Version 4.12 seems to print holes much closer to the size they're supposed to be so maybe I won't have to use hole expansion quite as much anymore.
Recommended Posts
GregValiant 1,411
I know there are some oddities with Hole Horizontal Expansion but I hadn't run into this before.
I drew a test box 50mm square with 5mm walls and two 8mm cross holes. I exaggerated Hole Horizontal Expansion to 3.0mm. This is a slice through the center of a cross hole. In this area the walls are still 5mm thick.
Here is the model at the last layer below a cross hole. The wall is 2mm thick as the 3mm HHE is applied to the square vertical hole. (This happens to be layer 380.)
Here is the very next layer (381) and Cura has reached the 8mm cross hole. Now the walls have reverted to 5mm thick and even required support for the step that occurs there.
From the build plate up to the first layer that cuts through a horizontal hole - Cura sees the square hole as a hole and so applies your (0.3) Hole Horizontal Expansion. When the slicing gets to the horizontal round holes then the square hole disappears and becomes a "U" shaped section and is no longer defined as a hole by Cura
The Square vertical hole will have steps HHE wide every time a cross hole occurs. (That is my theory which may not actually be right, but sounds good so far).
Is it wrong? I dunno. Mr. Spock would say that logically Cura is correct that there is no vertical hole feature in the area of the cross holes. In the real world you would think that the HHE would be applied uniformly all the way up the chimney. The only way I can think of to fix this is for Cura to make a decision based on what the user "expects" or maybe "hopes for". Some tough coding to get that done I betcha.
So that's my take on it. Maybe @ahoeben or one of the other main contributors can provide a better description or maybe even a fix or workaround.
Link to post
Share on other sites
ahoeben 2,012
Your take is perfectly valid. Cura only looks at these things one layer at a time. Any wall that is entirely inside an outside wall is considered a hole (and gets the Hole Horizontal Expansion treatment). The intrusions on the outside wall connect the outer wall to what was an inner wall in previous layers, making that "inner wall" part of the outer wall. So it is no longer considered a hole.
One way to think about it is if the layer is surrounded by "2d" water. Outside walls will get wet, inside walls stay dry. Only inside walls are considered holes. A protrusion as discussed before would make the formerly "inner" wall wet. (However, realize that there can be another outside wall enclosed entirely inside the inside wall, and an inside wall inside that, etc; the "water" metaphor is not perfect).
Edited by ahoebenLink to post
Share on other sites
tifhorn 0
I've stumbled onto this problem 2 weeks ago and just today realized what is the cause... As I'm mechanically modifying my Ender 3 v2 alot, the first thought was that I had messed something up, as on zoomed out preview in Cura (also using 4.10 version) this layer thickening wasn't quite noticeable.
I cannot understand why this expansion happens in both X and Y direction in case, when "hole" has only two boundaries in specific layer, as in GregValiant's example - it goes right through the wall, so only two sides of hole are limited and then, in my opinion, Cura should expand it only in this axis, ignoring the other. And it shouldn't be really hard to code that behaviour tho...
Or at least add an option, which will let the user choose to ignore those holes/"breaks" in walls from expanding - detection of such shouldn't be quite hard, if you already have an algorithm for finding holes in layers.
Edited by tifhornLink to post
Share on other sites