smartavionics / Cura

3D printer / slicing GUI built on top of the Uranium framework
GNU Lesser General Public License v3.0
175 stars 11 forks source link

Support Minimum X/Y Distance Not Respected #12

Open AbeFM opened 5 years ago

AbeFM commented 5 years ago

I'm not sure if you want to take a look at this with your fork, I know you've seen me complain about this before. If it's not in the cards, that's fine.

https://community.ultimaker.com/topic/25759-please-slice-and-post/

In quick summary: Basically, I feel the support is using the greater of ("minimum x/y distance", "x/y distance") at all times. Instead, it should use X/Y except in Support Floors and Support Ceilings.

I can write it up better if you'd like, but won't waste your time if you don't care. :-)

AbeFM commented 5 years ago

Gracias! https://github.com/smartavionics/Cura/issues/20

AbeFM commented 5 years ago

image See the ONE layer of support coming too close to the part? That seems to be consistent - a small detail compared to the scale of the fix, but perhaps a small oversite in your code?

I have seen that repeatably. Otherwise the behavior is exactly as desired.

smartavionics commented 5 years ago

but perhaps a small oversite in your code?

Yes, and no. It will only happen if there is no gap between the bottom of the support and the model. Currently, there is another bug in support that was recently added by an upstream developer that removes the gaps between the bottom of the support and the model.

I always uses a gap so the above problem doesn't occur. I will look into fixing it for the situation where there is no gap between the bottom of the support and the model.

AbeFM commented 5 years ago

Oh yeah, the latest one I tried had single bottom missing layers in place. I was going to post that missing layer but couldn't find it anymore. :-)

The march of progress, I suppose. Thanks again for all this. Would you like a separate Issue for this?

smartavionics commented 5 years ago

Would you like a separate Issue for this?

No, because I have already produced a solution which will be in tonight's build.

AbeFM commented 5 years ago

Not super sure how old my version is...

Anyway, getting this: image

That's support between two objects where the lower one is intentionally meant to support the upper. It's printed with 1 wall, no roofs, high gradual infill - to act as support.

It seems like the code is putting in PVA between the two objects but simultaneously keeping it from touching either one.

Lowering the support angle fills that in.

You'd mentioned using a specific slope to check if there should be contact under the part... Instead of hard coding this, why not use the 'support angle' on the top? It's probably reasonable. In this case, I turned down the support angle until my desired gap filled in.

smartavionics commented 5 years ago

When you lowered the support angle did it fill in both top and bottom? Without a project file, I can't really come to any conclusions.

AbeFM commented 5 years ago

image I was going to show you how I made it work (with a cube setting the angle shallower), but it isn't fixed here!

image The row in the back have different angles, but they aren't interesting. The front two are the same, except the lower object is Horizontal Expanded -0.5mm.

Not having luck making this happen. I suspected it was because of horizontal expansion and the gap not being filled in but having little luck showing it.

AbeFM commented 5 years ago

I saw this reversion notice: https://github.com/Ultimaker/CuraEngine/pull/923

and I'm concerned how it will effect things. I believe you've already disabled this in your build. Is that the case?

My main concern is wanting to get something that works as well as what I'm using now, so I can keep it as a "this works" version for actual printing of things I actually need. :-)

I'm about to leave on a month long trip, so it seems I'm better off waiting until my return to pick a version to standardize to, but I'd appreciate any advice! (Probably this might be better handled in email....)

BagelOrb commented 4 years ago

This seems to be fixed in the latest Cura. The minimum XY distance is applied on support bottoms as soon as that bottom has an angle of less than 89 degree, i.e. nearly vertical top surfaces already trigger the use of minimum XY distance rather than the XY distance.

BagelOrb commented 4 years ago

See https://github.com/Ultimaker/CuraEngine/pull/1115