supermerill / SuperSlicer

G-code generator for 3D printers (Prusa, Voron, Creality, etc.)
4.13k stars 520 forks source link

Very thick line width for overhangs #493

Closed kursatu closed 2 years ago

kursatu commented 4 years ago

Version

Version of SupserSlicer used goes here Latest code from github, 9 September, 2020 Use About->About SuperSlicer for release versions

For -dev versions, use git describe --tag or get the hash value for the version you downloaded or git rev-parse HEAD

Operating system type + version

What OS are you using, and state any version #s Windows 10 In case of 3D rendering issues, please attach the content of menu Help -> System Info dialog

3D printer brand / version + firmware version (if known)

What 3D printer brand / version are you printing on, is it a stock model or did you modify the printer, what firmware is running on your printer, version of the firmware #s CoreXY printer , Vking derivative Marlin bugfix-20.x

Behavior

Is this a new feature request?

Project File (.3MF) where problem occurs

Upload a SuperSlicer Project File (.3MF) (Plater -> Export plate as 3MF for Slic3r PE 1.41.2 and older, File -> Save / Save Project for SuperSlicer, Slic3r PE 1.42.0-alpha and newer) Defect9.zip

neophyl commented 4 years ago

Its printing as a bridge and if I recall correctly a bridge always prints as the nozzle diameter so its producing a section that is 0.8mm wide and high, hence the very thick layer. For this particular model if you turn off - Perimeters & Shell>Overhangs>On Perimeters>As Bridge then it slices it correctly I think.
You can also change the % to 70% and in this case that also changes it from a bridge.

supermerill commented 4 years ago

like neophyl said, you can't lay something flat if there is nothing to push against.

TD5023 commented 4 years ago

@supermerill Would it be possible to create a new setting where the overhang threshold is lower and doesn't include bridge flow? It would be awesome to be able to apply bridge speed and cooling to shallower overhangs while still using regular layer flow.

kursatu commented 4 years ago

@supermerill I disagree that this is working as intended. This is a massive over-extrusion, ie. width and height equal to nozzle diameter, from C++ sources. This is a problem in itself rather than a solution. In fact it prints perfectly, if you don't use overhang detection and slow down a lot for better cooling, or decrease the bridge flow a lot. The overhangs should probably always print with regular layer flow, certainly not with the current bridge thickness concept. This is pretty much the only essential feature that made me use superslicer.

robthide37 commented 4 years ago

doesnt turning off as bridge fix your prob tho ? i def noticed it on a benchy before but i am just asking why its not ok to just turn it off ?

supermerill commented 4 years ago

@TD5023 it's possible, but i need some experimentation result to show how useful it can be. Print a test piece with the good parameters for the overhangs, and an other one with the good settings for the bridge. By looking at them, we must be able to see one with good overhangs and bad bridge and vice-versa.

@kursatu

In fact it prints perfectly, if you [...] decrease the bridge flow a lot

So do it. The settings exist in bridge flow. If it's not good, then same thing as for TD5023, for this kind of radical change on overhangs I need some test results to support my work.

Adding an overhang speed & overhang speed fan that will apply regardless of the overhang flow is very possible and not complicated to implement, but it is really needed / useful?

TD5023 commented 4 years ago

@supermerill I made a little test piece awhile back that I just printed three ways at .15 mm layer height. They are as follows (direction reversal is active in all of them):

1) default (standard layer settings with no overhang adjustment) 20200925_170230 On this one, the straight lines are perfectly fine, but the surface is rough in rounding the corner. Cooling is an issue here.

2) as a bridge 20200925_170141 This suffers from obvious over-extrusion and is not suitable for shallower overhangs (which I'm sure you're already aware of, but I wanted to be thorough).

3) with the outside perimeter speed and cooling manually set to mirror my bridge settings, but standard layer flow 20200925_170205 This one turned out nearly flawlessly. I have no complaints.

Hopefully my crappy photography adequately conveys what I'm describing. This model is set to a 40 degree overhang (from horizontal), so it's decent, but not gigantic. At my layer settings, that amounts to a little more than 50% perimeter overlay between layers (so it wouldn't even register as an overhang on PS). The best print was definitely the one with the bridge speed and cooling, so if there was a way to trigger that on any overhang without having to default to these settings on all external perimeters, I'd greatly appreciate it.

Also, as an extra note, would it be possible to turn off an "as bridge" trigger on layer two only? Elephant foot compensation causes it to activate, which results in over-extrusion. I just noticed this while doing these tests.

robthide37 commented 4 years ago

@kursatu why would you give a thumbs down for me asking a question to try and understand better and possibly help you . Also you thumbs down merril and than expect help when he is explaining that its working as he intended . Guess what its his fork so if he intended full nozzle width then its working as intended and you are being immature. If you want something diff you just have to explain. I was asking you to clarify what you wanted on without the as bridge feature so you simply need the settings for cooling divorced from the extrusion modification. Could been nicer about it and he prob would have already done it for you .

supermerill commented 4 years ago

@robthide37 you can also see +1 -1 as "vote" What is the need for -1 if it's rude/forbidden?

kursatu commented 4 years ago

@TD5023 If you have your own build you can apply the changes at #501 and see how it works for you. I print a wide variety of stuff and also for actual production. 3D printing is an indispensable production method for me. Therefore, I've decided to also start using Cura, after many years. It has the features that I need, like overhang speed & cooling, avoid crossing perimeters during travel etc. I had to set it up for multimaterial , which was not easy to do.

Just to recap, this defect is due to the choice(?) for an incorrect(?) behavior. The consequences are:

1- Mess up the dimensional accuracy by extruding up to 3x-7x more (depending on the layer height) around where the problems may occur. It guarantees the sagging due to excess material. 2- Increase the print failures because of increased curling due to excess material. The nozzle hits the curled sections during travel. It is amplified with the other defect. 3- It is very hard to notice and therefore impossible to correct. It happens only in a small area and confuses you as to why the problem 2 might happen. There is nothing you can do to correct it. The bridge flow adjustment can't correct it because you need to change it every time you change the layer height. You can use it at all when you use variable layer height.

I now realize, all these caused me to loose huge amount of time. I've filed several defects for overhangs, out of around 10 total defects.

TD5023 commented 4 years ago

@kursatu I would, but I'm not much of a programmer. For perspective, when I need to write a program for straightforward calculations and outputs, I use Fortran. As a result, I don't even try digging into these and risk messing anything up.

As for Cura, I never liked its interface. It's a good slicer, but I've always preferred Slic3r and its forks. General overhang control is the main thing I've always found to be lacking, but other than that and a few fairly inconsequential changes I'd like to see, it's been good for me.

robthide37 commented 4 years ago

@robthide37 you can also see +1 -1 as "vote" What is the need for -1 if it's rude/forbidden?

your right i guess i always took it as if incorrect or rude than you downvote so asking question didn't make sense to be downvoted to me but guess i took the wrong way. Anyway as much as the feature works the way you intend do you have any plans to make a divorced setting where you can not alter the extrusion but still use the higher fan speed ?

supermerill commented 4 years ago

i'm leaning toward replacing the

by

but do I apply the bridge fan & bridge speed if the bridge flow is applied? I think I should. But maybe not.

robthide37 commented 4 years ago

i'm leaning toward replacing the

  • as bridge checkbox
  • as bridge threshold

by

  • overhang threshold (for fan & speed)
  • bridge flow threshold

but do I apply the bridge fan & bridge speed if the bridge flow is applied? I think I should. But maybe not.

I would either just keep simple where it uses bridge fan and speed when the overhang threshold is reached like you said with a seperate bridge flow threshold or maybe just add a seperate overhang flow and fan setting or really just an overhang fan setting and then the checkbox would just be for bridge flow but now on the cooling page would be an additional fan speed for overhang . I would imo just implement the simplest solution as far as coding since they all should work

kursatu commented 4 years ago

I would most importantly, always use the perimeter flow for the overhangs. The current over extrusion only decreases the overhang quality and increases print failures. Also, I would change just the wording of the options to

TD5023 commented 4 years ago

I would most importantly, always use the perimeter flow for the overhangs. The current over extrusion only decreases the overhang quality and increases print failures. Also, I would change just the wording of the options to

  • Use bridge speed and fan
  • Overhang threshold It would convey the correct message.

I'm in agreement with this. The only time I could see bridge flow being used properly for an overhang is if it's a simple straight line between two anchored ends and the exterior perimeter is entirely in air. However, at that point, it should be actually treated as a bridge, since that's what it is in application. For "normal" overhangs, even very steep ones (like the top of a circular hole), regular perimeter flow should pretty much always result in a cleaner print. I'd be happy to print tests of both if it would be helpful for comparison.

kursatu commented 4 years ago

@TD5023 I have produced a release for testing, however only windows binaries, It contains the items I wrote above and the fixes for the 2 defects. I wasn't able to run the test suite on it though, because I don't know how. https://github.com/kursatu/SuperSlicer/releases

supermerill commented 4 years ago

I'm in agreement with this. The only time I could see bridge flow being used properly for an overhang is if it's a simple straight line between two anchored ends and the exterior perimeter is entirely in air.

55° to 85°, with bridge flow (and alterning direction). image

TD5023 commented 4 years ago

@supermerill what layer height are you using for that? It looks pretty thick, though that could be a trick of the picture. I use adaptive heights for everything, so steeper overhangs will be printed at or close to my minimum, which is .04 mm. Not sure if that would make a difference (I admit I don't know the math that goes into bridge flow, just that I get overextrusion/drooping when it's active).

@kursatu I'll take a look at that later today.

kursatu commented 4 years ago

@TD5023 Here is a link to the test model of the other defect. You can slice and dice it to get only the overhangs section. Otherwise, it can take longer to print. https://github.com/supermerill/SuperSlicer/issues/501#issuecomment-703780938

robthide37 commented 4 years ago

Even the benchy prints better with the old overhang method off and i am testing your build right now comparing to ideamaker cause i have had to use ideamaker for my maf housing and some adapters since the overhangs need the cooling but on the arch it causes the sensor to not fit without cleanup post print which costs alot of time when printing batches of 20

kursatu commented 4 years ago

@TD5023 @robthide37 I've just really published the release. It was mistakenly in draft mode and I did not notice. Sorry for the confusion. Here is the link, it is visible now. https://github.com/kursatu/SuperSlicer/releases/tag/V1

robthide37 commented 4 years ago

was trying figure out i updated my visual studio and now it can never find boost when doing c its driving me nuts i may reformat and start over so thanks for linking the compiled one

TD5023 commented 4 years ago

I printed the test model both ways (no supports at all). Here are my results:

20201007_165908 This is the original with bridge parameters set to activate at 50% (the default)

20201007_165851 This is with the new version that does not adjust flow and remaining bridge parameters set to activate at 25%.

20201007_170054 Here is a side-by-side.

It's most evident in the last picture, but the original version is significantly rougher once the bridging kicks in. My cooling setup isn't the best and I definitely need supports for extreme overhangs, but in the zone of 45 degrees to about 70, just cooling and speed were the best.

robthide37 commented 4 years ago

voron cube and benchy also way better with kursatu's build

kursatu commented 4 years ago

So, the improvements are verified. Can we please get this behavior changed and both defects committed? This is an important feature and it should be very beneficial to everybody. PS: I am expecting even more quality difference in comparison to TD5023's tests. My cooling is pretty good so the only problem with overhangs were the over extrusion. My machine is busy so I can't provide a before & after comparison at this time. But here is an earlier print, which shows the over extrusion starting at 45 degrees and sagging at the very top. Such pictures are not easy to take, so it is not easy to see. You need to click on the picture to make it as large as possible. then you'll se what I mean. IMG_20201007_222301520_HDR

supermerill commented 4 years ago

Can we please get this behavior changed and both defects committed?

yes.

@TD5023 0.2mm layer height on 0.4 nozzle I think, that's my default.

robthide37 commented 4 years ago

If you set the bridge flow to 0 to disable then it treats all perimeters as bridges and sets fan to the bridge speed for the entire print

robthide37 commented 4 years ago

fantest-_Part_2b.3mf.txt

robthide37 commented 4 years ago

ps the kursatu build was working idk if it is a prusa merge issue but also make sure to set fan startup delay to 0 from the default-1 as that reeks havok when at -1

supermerill commented 4 years ago

@robthide37 if ot's a bug, you should create a new issue, as i can't close/tag this one for that bug. So i'll miss it when i'll search a bg to correct.