Cura
Cura copied to clipboard
Support Minimum X/Y Distance Not Respected
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. :-)
Isn't this behaviour controlled by the Support Distance Priority setting?
Looking at the code, when Support Distance Priority is set to "X/Y overrides Z" it should use Support X/Y Distance rather than the minimum.
Ah, ok, thought you may have been familiar with the issue.
Desired Behavior: For support floors and ceilings, use the "Minimum X/Y Distance", and use the "X/Y Distance" when "Z Overrides X/Y" is selected.
The effect of not using that is the first layers of support (even tens of layers) are NOT PRINTED ON THE MODEL. They are printed in mid air, don't stick, get drug around, stick to other things, leave holes and worst of all you get support failures because the bottom several layers are missing.
I can put up more pictures, etc. Sometimes it works right, there's a guy with a Mac who seems to get the right results. And I do sometimes. But I can't think of a good reason to intentionally add a gap when the user sets a number.
If I'm using it wrong, I would love to know. Otherwise, I need to know how to get supports to stick to sloped surfaces.

Looking closely, only ~1 mm over the second to top layer touches the model (I think an accident) and the very top layer on the model touches for about 10% of its area. But the rest of the entire support is way off the surface.

Desired Behavior: For support floors and ceilings, use the "Minimum X/Y Distance", and use the "X/Y Distance" when "Z Overrides X/Y" is selected.
And what behaviour do you want for non-floors and ceilings? You have to spell it out for me as I can't guess your requirements.
It's not really floors and ceilings.
My thought is the check looks something like this:
X/Y_distance = Std_X/Y_Distance
If (Z-OveridesXY == TRUE)
{
If ( (ObjectZ - CurrentLayerZ) < ZContactDist )
X/Y_distance = min_X/Y_Distance
}
and I think I'd like something like:
X/Y_distance = Std_X/Y_Distance
If (Z-OveridesXY == TRUE)
{
If ( (ObjectZ - CurrentLayerZ) < ZContactDist ) || (Object_UnderZ - CurrentLayerZ) > ZContactDist
X/Y_distance = min_X/Y_Distance
}
I'm no programmer, I hope that makes sense. You're right, it has nothing to do with cielings and floors, I just thought that would make it easier to implement.
What I want is Z overrides X/Y for both above and below. This seems obvious to me, but if you're not getting it perhaps I'm misunderstanding how to obtain the results I'd like (my supports to print on my object, instead of in free space). I assume you see the gaps in the picture, but I can get better images if I'm unclear.
I don't really understand the problem. Here's your example object from the forum, the support can be made as close as one wants to the sloping surface....

There are TWO variables: "Support X/Y Distance" AND "Support X/Y Minimum Distance"
I do not see the utility in them if you MUST set them the exact same in order for the second one to do anything. The tooltip from "Support Distance Priority" seems to explain what I (and whoever wrote the code) had in mind: The ability to have a larger X/Y distance (to keep perimeters clean) while still achieving close supports for overhangs and islands.

Does what I want to accomplish (Islands that print and supports that stick while maintaining reasonable X/Y separation - by putting my PVA touching the object instead of several layers away) sound reasonable?
If I'm missing something, I've been missing it for well over a year, and I would appreciate figuring a way to make the Support Z Distance be the number I type into the box.
I guess your lack of response means you still don't understand?
I REALLY want to get my point across. Please help me to do so. If I am not clear, ask questions, and if I am clear, answer my questions. I'm sure we can both understand each other with some effort.
My goal: To have my supports stick to my model without ruining side walls. My approach: Print supports so their first layers touch the model. My issue: CURA specifically avoids the model when printing support, ignoring Minimum XY Distance setting..
I would like to use the "Support XY Distance" to prevent my supports from merging with the object (embedding PVA into the print which leaves holes and rough surface on near-vertical and vertical walls), and use "Minimum Support XY Distance" to allow the support to make reliable contact with the top/bottom surfaces of the model.

I guess your lack of response means you still don't understand?
Sorry, I'm just busy and Cura stuff isn't the highest priority for me.
I did look at the support code but didn't get very far. I will look some more when I can but can't say when any changes will be. I'm not familiar with the support code so it will take me a while to become acquainted with the original programmer's intentions. Believe me, in Cura, it's not always very obvious what they were intending!
That's totally great! I just want to know if I'm making my point or not.
If I'm explaining myself I'm already a step ahead of the last year of work. :-)
i think I have the idea now. How does this look to you:

I will make a build before the day is done that has this so you can test it.
I printed it (PLA) without the bottom interface and using a min x/y of 0.3 and it came out just fine. Supports stuck to the side OK but then were easy to remove.
I got even better results using a wall around the support and 10% gyroid support. Quick to print and very easy to remove.

I think we're onto something! The real question is something curved, but a shape like the one I did in my earlier post would tell us how it's dodging vertical walls. What you've got looks right and certainly it would stick.
I'm a little surprised at the interaction at the overhang - the dark blue layers are pulled away from the tower whereas I would expect them to be closer (using MinXY distance?). You have the case from my 3rd image (top half of it, anyways), but I am looking for the 4th (using MinXY, not 0)
It sort of looks like you have 'support interface horizontal offset' set.
You're WELL on the right path here. This will improve the lives of many people, at least one I care about very much. :-)
If it'll run on win10, I can test it.
I think we're onto something! The real question is something curved, but a shape like the one I did in my earlier post would tell us how it's dodging vertical walls. What you've got looks right and certainly it would stick.
I tried it on a curved object and it looked OK.
I'm a little surprised at the interaction at the overhang - the dark blue layers are pulled away from the tower whereas I would expect them to be closer (using MinXY distance?). You have the case from my 3rd image (top half of it, anyways), but I am looking for the 4th (using MinXY, not 0)
But at that region of the model there is no overhang. The min xy only gets applied to layers that overhang the layer below. So I think the result is to be expected given how the code works.
BTW, I am on holiday from tomorrow for a week so no updates for a while.
FYI: I'm asking all this in the hopes of using PVA - so contact distanced on Z should all be 0.
I think we're onto something! The real question is something curved, but a shape like the one I did in my earlier post would tell us how it's dodging vertical walls. What you've got looks right and certainly it would stick.
I tried it on a curved object and it looked OK.
I'm a little surprised at the interaction at the overhang - the dark blue layers are pulled away from the tower whereas I would expect them to be closer (using MinXY distance?).
But at that region of the model there is no overhang. The min xy only gets applied to layers that overhang the layer below. So I think the result is to be expected given how the code works.
I would expect Min X/Y to be applied anytime you're within Support (Top) Distance. Perhaps Support (top) - 1 layer? The idea (I think) is that you'll get supports that might be too snug to leave a nice side, but you need it to get a small overhang supported. Are you saying since it's a bridge it's not a factor?
Something round to look at. SupportRemovalTest.3mf.txt
I will make a build before the day is done that has this so you can test it. You mean download from github and compile? If you get a chance before you leave, put something up and I'll try it while you're gone.
BTW, I am on holiday from tomorrow for a week so no updates for a while. Enjoy your holiday!!
Hey howdy! Looks like things are pretty busy on the main CURA site.... But I'm basically at the point where I can get supports that stick to the model AND glue to vertical walls (setting XY to 0.1) or supports that fail every time (X/Y to a line width or so).
Do you have something I can try? I'd be willing to compile it if need be.
Did you try the 0802 build?
No, sorry, I don't know what to do other than my requests in this thread for something to try.
You recommend downloading that version from this repository? Will do!
Thanks!
-Abe.
Sent from my "smart"phone, please excuse brevity and Swype-oes
On Sun, Aug 11, 2019, 5:31 AM Mark Burton [email protected] wrote:
Did you try the 0802 build?
— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/smartavionics/Cura/issues/12?email_source=notifications&email_token=AAAKLEOR5UNKESQWYW3EHUDQEABBJA5CNFSM4IGT2VN2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOD4A757Q#issuecomment-520224510, or mute the thread https://github.com/notifications/unsubscribe-auth/AAAKLEOOPR6B2OO7RP3P2PDQEABBJANCNFSM4IGT2VNQ .
You recommend downloading that version from this repository? Will do!
There's pre-built releases for Linux and Windows available from https://www.dropbox.com/sh/s43vqzmi4d2bqe2/AAADdYdSu9iwcKa0Knqgurm4a?dl=0
Thank you thank you thank you!!!!
Off to a rough start:
That is a pretty oddball case, so I wouldn't worry about it too much.
Looking at something more representative, here's my standard test model....
4.1:

802:


Huh, is there a way to make it not support bridges? Irrelevant for my use, but I'd never noticed it before (my test model didn't used to have the roof). It happens in both versions.
Similarly, this is an issue on both:

I think both of these are consequences of the settings working correctly, so it's probably not anything to do anything about though if they happened in a hard to see place it would lead to failed prints without anyone knowing why.
I'll get to testing, but right off the bat I'd say you've fixed a 2 year old problem!!!
First couple prints performed admirably. I had a support failure on each machine, I believe due to weak initial extrusions after a solid prime tower. I was hoping to be able to ignore it, but it doesn't seem so.
Is there anything in particular I should test, or just kinda use it and say what I see?
Hi, thanks for the feedback. I don't have anything in particular in mind to test so please just use it some more and let me know if there are any problems. After a while if it's looking OK, I will submit a PR to Ultimaker.
A little weirdness, as of yet unsure if it is related:

I believe it is using the wrong material for the very extreme layer of supports - perhaps the interface is using a different distance?
I didn't see a change over support density, pattern...
Ah, it comes from having the minimum support interface area larger than the minimum support area.
Different from the issue in previous post:
This is really working great! I'm getting my supports to hug my model, but not blemish. There's interface anywhere they are really close, and as you can see, it also doesn't force contact where it isn't needed.
I'm a little puzzled why it hasn't always worked this way - I feel it was a bug not a design choice. :-)
I believe it is using the wrong material for the very extreme layer of supports - perhaps the interface is using a different distance?
I didn't see a change over support density, pattern...
Ah, it comes from having the minimum support interface area larger than the minimum support area.
I haven't made any changes in this regard, the behaviour should be the same in Ultimaker's build.
This is just you posting the code I've been using to CURA proper? No further changes?
Unrelated: Is there a "don't support bridges" equivalent? I have some designs with lots of printable bridges that end up generating supports that I could block manually if I must.
This is just you posting the code I've been using to CURA proper? No further changes?
Correct.
Unrelated: Is there a "don't support bridges" equivalent? I have some designs with lots of printable bridges that end up generating supports that I could block manually if I must.
No, sorry.

I want to make my soluble interfaces larger so that the PLA can fit out of holes it is printed inside of. I'm not yet sure what's causing it, but it seems like the supports are largely missing.....
Will add more if I learn anything.

I've been playing with stair step height, expansion, pattern.... not seeing any improvement. Hex1Missing Supports.3mf.txt
If I should move discussion to main CURA GitHub, let me know.
A couple more shots to illustrate behavior, varying floor thickness.
3mm roof, 1 mm floor
3mm roof, 3 mm floor
Significant holes.
3mm roof, 7 mm floor
Missing entire floor?
There's a chance that non-floor support is being removed proportional-but-not-equal to the floor thickness?
I tried setting the XY distance lower, no change.
Lastly, set XY overrides Z, no change:

Final point unless I find the difference - same file, closely related settings, this slices ok. Not sure the difference.
Is there a easy way to compare profiles?
Nevermind. That previous file doesn't work either if I make the roof and floor large.
I sure is a lot of work to turn "don't print unsupported material" into code, huh?
As usual, anything I can do to illuminate the issue I'm willing to help with.
Ledges are 10, 15, 20 mm apart Inner humps are 0, 5, 10 apart. Slopes are 15 or 30 degrees All orientations match
8/8 Roof/Floor

1/13
Missing some on bottom as the issue on the forums currently, I think
Missing on the right, not sure why
13/1
Missing a lot of bottoms. No idea why.
Perhaps this is not related to X/Y and should be on the main forums? Let me know, I can post there.