Cura icon indicating copy to clipboard operation
Cura copied to clipboard

Support Minimum X/Y Distance Not Respected

Open AbeFM opened this issue 6 years ago • 61 comments

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 avatar Jul 24 '19 20:07 AbeFM

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.

smartavionics avatar Jul 25 '19 10:07 smartavionics

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.

image

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. image

AbeFM avatar Jul 25 '19 19:07 AbeFM

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.

smartavionics avatar Jul 25 '19 19:07 smartavionics

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.

AbeFM avatar Jul 25 '19 19:07 AbeFM

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.... Screenshot_2019-07-26_14-31-12

smartavionics avatar Jul 26 '19 13:07 smartavionics

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.

image

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.

AbeFM avatar Jul 29 '19 22:07 AbeFM

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.

image

AbeFM avatar Aug 01 '19 19:08 AbeFM

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!

smartavionics avatar Aug 01 '19 19:08 smartavionics

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. :-)

AbeFM avatar Aug 01 '19 20:08 AbeFM

i think I have the idea now. How does this look to you:

Screenshot_2019-08-02_09-06-02

I will make a build before the day is done that has this so you can test it.

smartavionics avatar Aug 02 '19 08:08 smartavionics

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.

Screenshot_2019-08-02_11-33-19

smartavionics avatar Aug 02 '19 10:08 smartavionics

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.

AbeFM avatar Aug 02 '19 20:08 AbeFM

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.

smartavionics avatar Aug 02 '19 20:08 smartavionics

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!!

AbeFM avatar Aug 02 '19 22:08 AbeFM

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.

AbeFM avatar Aug 11 '19 07:08 AbeFM

Did you try the 0802 build?

smartavionics avatar Aug 11 '19 12:08 smartavionics

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 .

AbeFM avatar Aug 12 '19 17:08 AbeFM

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

smartavionics avatar Aug 12 '19 17:08 smartavionics

Thank you thank you thank you!!!!

Off to a rough start: image 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: image

802: image

image

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: image image

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!!!

AbeFM avatar Aug 12 '19 20:08 AbeFM

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?

AbeFM avatar Aug 13 '19 18:08 AbeFM

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.

smartavionics avatar Aug 13 '19 20:08 smartavionics

A little weirdness, as of yet unsure if it is related: image

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.

AbeFM avatar Aug 15 '19 00:08 AbeFM

Different from the issue in previous post: image 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. :-)

AbeFM avatar Aug 15 '19 00:08 AbeFM

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.

smartavionics avatar Aug 15 '19 06:08 smartavionics

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.

AbeFM avatar Aug 22 '19 19:08 AbeFM

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.

smartavionics avatar Aug 22 '19 20:08 smartavionics

image

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.

image

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.

AbeFM avatar Aug 24 '19 00:08 AbeFM

A couple more shots to illustrate behavior, varying floor thickness.

3Roof1Floor 3mm roof, 1 mm floor

3Roof3Floor 3mm roof, 3 mm floor Significant holes.

image 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: image

AbeFM avatar Aug 24 '19 00:08 AbeFM

Final point unless I find the difference - same file, closely related settings, this slices ok. Not sure the difference.

Hex1WorksOK-printed.3mf.txt

Is there a easy way to compare profiles?

AbeFM avatar Aug 24 '19 00:08 AbeFM

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

image

1/13 image Missing some on bottom as the issue on the forums currently, I think Missing on the right, not sure why

13/1 image 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.

AbeFM avatar Aug 24 '19 18:08 AbeFM