-
-
Notifications
You must be signed in to change notification settings - Fork 2.1k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Avoid starting a layer on overhang edge corner #9369
Comments
I tried looking through Ultimaker/CuraEngine@2eb9528 but I can't find the place where the acceleration and deceleration distances are calculated. @smartavionics You wrote the overhang speed function. Maybe you could tell me? |
Well, it's rather confusing because my Cura builds do modulate the speed depending on the position within the overhang region but I don't think the UM builds do. For info here is the code in LayerPlan::addWallLine() that I am referring to...
Going out now, see you later...
|
The overhangs are not symetrical. This causes different behavior as you can see above. As expected it decelerates to the right overhang on the visible front (image in last comment). Surprisingly there is acceleration between the 1st and 2nd follow-up vertex on the other side: It seems it accelerates one vertext too late if there are no other overhangs on this layer. It doesn't accelerate at all if there is another overhang on the layer. |
Hi @d-schmidt thank you for you feature request. |
@fvrmr I made some edits just now (not just because I mixed up deceleration and acceleration). I now think fixing after-overhang-acceleration could solve this. Is it possible for the seam to start in the middle of a straight wall? An explicit feature toggle to keep the seam away from overhang edges would be great tho. |
BTW, it's worth noting that in UM Cura, the speed colouring in the layer view blends the colour used for a line segment when the speeds at the start and the end of a line segment are different. That is just a visual thing, the actual speeds used when printing will not follow the same profile but, instead, the printing speed will be influenced by the speeds set for each of the line segments and the printer's acceleration and jerk values. By comparison, the speed colouring used in my Cura builds does not do that colour blending but, instead, uses a solid colour for the whole line segment based on the print speed for that segment only and ignoring the speeds of the line segments that come before and after. I'm doing that because I think it makes the visualisation more accurate. Of course, still not completely accurate because the colouring does get adjusted to account for the acceleration/deceleration that occurs at the junction of two lines that are printed at different speeds. |
Yes, those images illustrate what I have just said (assuming that the image on the left is from my Cura and the image on the right is from an UM release). I wouldn't say it was a floating point error, I would call it a programming error! To me, the speed colour should represent the speed used for the bulk of the line. |
I think the acceleration/deceleration occurs at the printer firmware level and is not visible in the gcode visualisation. |
Yes left is you, right is UM |
I'll look into that and get back... |
Can you provide an STL that includes the feature shown in the image immediately above? Thanks. |
Yes, ofc. If you have one-sided overhangs like in the images below, activating overhangs will push the seam back into the upper slope corner. If both sides of a rectange are overhangs it has no chance. I guess starting a straight line in the middle is not something we usually want. overhang4.zip (z seam position set to right) |
Hi @d-schmidt , I have made a new release at https://github.com/smartavionics/Cura/releases/tag/20210306. If you have any feedback, please open either a new issue or discussion at https://github.com/smartavionics/Cura rather than here, thanks. |
Thank you very much. That was much faster than I even expected an answer. 👍 What is the diff between your cura and the UM version? I see regular upstream merges. Is it this and some fixes? @fvrmr a possible solution in 4 commits smartavionics/CuraEngine@a7a942b |
No payment required, I do this for fun! Unfortunately, these days my Cura source has diverged so much from UM's Cura that I no longer submit any PRs for anything other than bug fixes. This could be considered a bug fix but as the solution depends on some code that already existed in my Cura the required change is more complicated than just the recent 4 commits. Anyway, if you wish to discuss this further please do so over on my repo rather than here, thanks. |
I have discussed it with the team. And we also think that this has value. So we've created a ticket on our backlog. |
OFFTOPIC: @smartavionics you should consider github sponsorship, I'd defenetely chip in! |
Sorry, didn't read the entire thread. But looking for something ele I stumbled on this and think the solution might already been implemented. |
@brunoosti this trick stops working when all corners are overhangs whichs happens for my model. |
Oh sure! And the seam settings only apply to the outer wall. I've been dealing with it too and opened a feature request that might help with this (#10290). Overhanging corners normally curl because of not sufficient cooling. The layer below (generally the outer wall) don't have much to transfer the heat to and it tends to reheat, curling up. |
I rarely print the walls faster on my ender 3v2. I've been printing on a bigger nozzle the last few weeks so I print slower anyways. |
👋 Quick update on our side. I'll close this issue since it's resolved. |
Edit 2: 'Overhang Wall Speed' + 'Optimize Wall Print Order' could in theory prevent this, but the overhang deceleration doesn't work properly. When everything is overhang the seam goes back into the corner. I think that might be an actual bug instead of a feature request. See comments and images below.
Is your feature request related to a problem?
An overhang corner warps up and the outside wall there will be rough. This happens on corners which are the start of a layer and an overhang. See images. I start on the inner walls and the outer wall starts on a different point but it still happens.
Describe the solution you'd like
I'd like an option to have Cura try not to start on the overhanging edge. Overhang #3340 and and edge/corner detection (seams) already exists. I would love to have them combined (and working for inner walls).
See Image
Describe alternatives you've considered
Rotating the model to avoid this is not always possible. Speed and temperature changes help only a little bit.
Some tricks have been suggested in #3875 but the ticket was deferred.
It seems some work has been done there and the outer wall doesn't start on the bad edge but the inner walls still do. This still causes reproducable problems for me.
Affected users and/or printers
Curling edges seem to be a common problem but I use Ender 3 V2.
overhang4.stl.zip
phone2.zip
The text was updated successfully, but these errors were encountered: