Skip to content
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

5.3.0 strange artifacts in skin (jagged paths on curved surfaces) #14811

Closed
1 task done
discip opened this issue Mar 7, 2023 · 101 comments
Closed
1 task done

5.3.0 strange artifacts in skin (jagged paths on curved surfaces) #14811

discip opened this issue Mar 7, 2023 · 101 comments
Labels
Status: On Backlog The issue / feature has been reproduced and is deemed important enough to be fixed. Type: Bug The code does not produce the intended behavior.

Comments

@discip
Copy link
Contributor

discip commented Mar 7, 2023

Application Version

5.3.0/1

Platform

Manjaro

Printer

unrelated

Reproduction steps

Open the attached 3mf and slice it with both 5.2.2 & 5.3.0/1, compare the result by looking for almost _ microscopic_ extra paths in the skin, which do break continuity of curved paths.

Actual results

There are artifacts in the skin when sliced with the latest release.

Expected results

No artifacts in the skin should occur, as in the previous release.

Checklist of files to include

  • Project file

Additional information & file uploads

project file

Please enlarge the screenshots to be able to observe the irregularities best.

Also: Note the bumps in the marked areas on the slopes left and right.

Addendum:
After inspecting the screenshots closer, I noticed that the paths in general in 5.3.0/1 are quite jagged compared to those of 5.2.2, the latter being much smoother (Particularly noticeable in the front area of ​​the large circles!).

overview

5.2.2

5 2 2_artifacts_1

5.3.0

5 3 0_artifacts_1



artifact 1

5.2.2

5 2 2_artifacts_2

5.3.0

5 3 0_artifacts_2



artifact 2

5.2.2

5 2 2_artifacts_3

5.3.0

5 3 0_artifacts_3



artifact 3

5.2.2

5 2 2_artifacts_4

5.3.0

5 3 0_artifacts_4

@discip discip added Status: Triage This ticket requires input from someone of the Cura team Type: Bug The code does not produce the intended behavior. labels Mar 7, 2023
@GregValiant GregValiant added Status: Under Investigation The issue has been confirmed or is assumed to be likely to be a real issue. It's pending discussion. and removed Status: Triage This ticket requires input from someone of the Cura team labels Mar 8, 2023
@GregValiant
Copy link
Collaborator

Thanks for the report and the file.
Here is the model in MS 3D Builder. You can see that it is reporting that there are errors in the model.
image

I used Cura 5.3beta and created a gcode from your project and read the file into AutoCad. Here is that same area.
marks in slice
I measured the error and for both the larger marks it is 0.15mm. They were the only glitches I see in the gcode.

Here is a view in Mesh Mixer. You can see that the triangle density of the model varies widely from area to area. This is not the smooth model that it appears to be at first glance.
image

In regards to this bug report:
The model has some definite issues and it's possible that 5.2.2 is simply more tolerant of model problems than 5.3 is. The slice I did with 5.2.2 does not show those hiccups that are in the 5.3.1beta slice.

The Cura team will take a look

@discip
Copy link
Contributor Author

discip commented Mar 9, 2023

@GregValiant
Thank you for the investigation.
It may be that the object has issues and most likely this is the cause for the dimples, but as mentioned in the first post addendum, unfortunately that's not all!

There are also these noticeable jagged paths on curved surfaces.

The same strange jagged paths also appear on a smooth surface of a simple cylinder, while there is nothing of the sort in 5.2.2.

Overall, the surface in 5.2.2 is much smoother compared to the same surface ​​in 5.3.0.

Please enlarge the images for a better view.

There is a very short extra path inserted between 2 consecutive segments of a curved path:

demo

overview

You can see the difference particularly well on the left side.

difference

cylinder.zip

@discip discip changed the title strange artifacts in skin [5.3.0] strange artifacts in skin (jagged paths on curved surfaces) Mar 9, 2023
@discip discip changed the title [5.3.0] strange artifacts in skin (jagged paths on curved surfaces) 5.3.0 strange artifacts in skin (jagged paths on curved surfaces) Mar 9, 2023
@Yhunoo
Copy link

Yhunoo commented Mar 15, 2023

I also saw these distinct jagged paths on the surface when slicing with version 5.3 ,

@Yhunoo
Copy link

Yhunoo commented Mar 15, 2023

Does anyone solve this problem

@aaron-crocker
Copy link

Im having the exact same issue with 5.3. Ive been racking my head for days on this one. Smooth curved surfaces with dimples and what looks like extra seams forming vertically up the print.

@discip
Copy link
Contributor Author

discip commented Mar 23, 2023

@GregValiant
@MariMakes
@jellespijker

Is anyone on this already?

@darrellenns
Copy link

I'm seeing this as well. I pasted my comments below from #14943, since this thread has more activity and it seems to be a duplicate issue.

I'm seeing the exact same thing. This is a regression in 5.3.0 - the problem does not appear in 5.2.2. It seems to happen when a wall goes from straight to large radius convex curve. There is a weird extra move in the gcode output. It's very hard to see in Cura's preview, but is quite clear if the gcode is viewed in the PrusaSlicer viewer.

Here is an example:
image

In Cura's preview, you can see a slight discontinuity:
image

The resulting print:
image

The same STL sliced with Cura 5.2.2 does not have these artifacts. Prusa Slicer also does not have this issue. Note that this is not the Z seam - that's in a different location. This artifact appears in 4 places on this model - every location where a straight wall connects to a large radius convex curve. It does not appear on the small radius curves (small fillets) or on the concave curves.

Here is the STL I used and resulting gcode:
STL File
5.3.0 gcode
5.2.2 gcode

Both gcode samples were sliced with the Cura default standard 0.2mm profile.

@qwerty8224
Copy link

can anyone from the developers confirm the problem? or is that not a problem?

@discip
Copy link
Contributor Author

discip commented Mar 28, 2023

@qwerty8224
As stated by all the commenters here, this is definitely a problem!

I think what you meant, is the question about this issue being addressed yet. 😊

@qwerty8224
Copy link

qwerty8224 commented Mar 28, 2023

@qwerty8224 Как заявили все комментаторы здесь, это определенно проблема!

Я думаю, что вы имели в виду, что вопрос об этой проблеме еще не решен.😊

they didn’t confirm the problem for me, they sent me to read YouTube and look for the cause in the printer 🤷 му ticket #14970

@discip
Copy link
Contributor Author

discip commented Mar 28, 2023

@qwerty8224
According to your description, including the solution: "Increase the resolution", your issue is not the same as this one.
Since applying your solution doesn't fix the problem I'm referring to here.

@jellespijker
Copy link
Member

jellespijker commented Mar 29, 2023

@MariMakes the discontinuity that @darrellenns expirienced is probably fixed in main for 5.4 with this commit Ultimaker/CuraEngine@21e5e8f Nevermind, that commit is already in 5.3 as well

@igiannakas
Copy link

Same issue here with curved surface models. Seems like the slicer is having a numerical precision issue when planning the path for curved surfaces.

@darrellenns
Copy link

There does seem to be something profile-related going on here. I did the following as a test:

  • Remove all Cura settings files
  • Launch Cura 5.3.0
  • In the first run dialogs, configure Cura for a Creality Ender 3 Pro
  • Load same STL from my earlier post and rotate it 90 degrees for correct print orientation
  • Select the Cura provided 0.2mm profile
  • Slice the model and look in Cura's internal preview for the glitch

If I do those steps exactly, the glitch is there. As I mentioned before, spotting it in Cura's preview is a little tricky but it is visible. It's more obvious if you select the extruder preview control at the bottom and move one step at a time using the arrow keys on the keyboard.

I then tried the exact same steps, but using a different printer model in the first run dialog. I tried Prusa MK3, Ultimaker S5, and "Custom FFF". None of these exhibited the glitch. Additionally, I tried changing the machine/extruder settings for the Custom FFF to match the Ender 3 Pro settings. It still did not exhibit the glitch. I then tried a few different Creality printers, and all of them showed the glitch.

@darrellenns
Copy link

After some further experimentation, I found the combination of settings that results in this glitch:

  • Mesh Fixes -> Maximum Resolution: 0.25
  • Walls -> Print Thin Walls: disabled

These are the default settings for Creality machines. In the "Custom FFF" machine, the defaults were resolution 0.5 and thin walls enabled.

So it seems there is a bug that is triggered by disabling "Print Thin Walls", but the glitch is filtered out if "Maximum Resolution" is set too high for the glitch to show up in the result.

@darrellenns
Copy link

As a workaround, you can edit creality_base.def.json and remove the line with "fill_outline_gaps". This enables "Print Thin Walls" on all profiles for Creality machines, unless you have explicitly disabled it in your custom profile. Of course, creality_base.def.json will be replaced next time you upgrade Cura, but hopefully the bug will be fixed in the next release anyway.

@igiannakas
Copy link

Not sure this works for me - I have a custom profile and I have thin walls enabled and the issue persists. It moves if I change the mesh resolution (I.e: the lines go to another place in the model) but doesn’t disappear.

@MariMakes
Copy link
Contributor

Hey All,

We've added a ticket to the backlog with the intent to improve this.
For internal reference CURA-10500

Thanks for the report! 👍

@MariMakes MariMakes added Status: On Backlog The issue / feature has been reproduced and is deemed important enough to be fixed. and removed Status: Under Investigation The issue has been confirmed or is assumed to be likely to be a real issue. It's pending discussion. labels Apr 6, 2023
@themuck
Copy link

themuck commented Apr 26, 2023

As a workaround, you can edit creality_base.def.json and remove the line with "fill_outline_gaps". This enables "Print Thin Walls" on all profiles for Creality machines, unless you have explicitly disabled it in your custom profile. Of course, creality_base.def.json will be replaced next time you upgrade Cura, but hopefully the bug will be fixed in the next release anyway.

Thanks it works when i enable the "Print Thin Walls" function for my Cr-10, standard PETG and Cr-10 Printer Settings.

1682503794403

@jellespijker
Copy link
Member

You would have to be a bit more specific.

What do you mean there are still bugs? are these actual printed blobs, do you observe this in the preview. Can you share the project file, such that we can reproduce

@qwerty8224
Copy link

CFFFP_100% PA_Адаптер пропеллера.zip
UMS5_100% PA_Адаптер пропеллера.zip

@jellespijker
Copy link
Member

@qwerty8224 can you elaborate what you consider worse behaviour, because if I slice this project in 5.4.0 it looks pretty decent in the preview. It would really help if you would print the model as well and add some photos such that I can investigate further

I will do a statistical analysis and run it through the visual debugger tomorrow morning. But I don't see any obvious jagged paths just skimming over the Cura preview.

Peek 2023-07-04 20-29

@qwerty8224
Copy link

qwerty8224 commented Jul 4, 2023

IMG_4412
Yes, this project is not bad, but still there are a few shortcomings, I'm wondering why the ultimaker S5 project looks very bad, I have not seen this before.

@qwerty8224
Copy link

qwerty8224 commented Jul 4, 2023

I also understand that maybe my settings are very old, they were probably transferred from Cura 5.0. But unfortunately, I can't make all the settings from scratch yet, completely remove Cura and clean up all the files. Now I'm wondering why the profile of the ultimaker S5 looks bad, I didn't touch anything on the default settings ... it turns out we are repairing one but the other is breaking ..
you write that you cannot reproduce the problem on Ultimaker printers, I originally had this problem on Ultimaker printers, I reported it and now I also see a problem in Ultimaker profiles, so I can’t understand why you don’t see it, but I see, I can assume that could it be something else? 🤷
thank you for your perseverance in solving the problem 😉 I think the community will appreciate it.

@qwerty8224
Copy link

in my opinion, if I remember exactly in my cfffp profile (the maximum resolution is reduced to 0.04 and it should be 0.25) please check, maybe this will help to see the problem more clearly.

@jellespijker
Copy link
Member

jellespijker commented Jul 4, 2023

I'm printing the S5 project file as we speak on my own Ultimaker S5. This should contain all the settings that you use. I will share the images later.

On a separate note if I look at the screenshot that you shared I have trouble mapping those defects to the actual shared project file. If the screenshot and the project file are the same then the seams on the chamfered edges of the 4 holes should look the same. But in the screenshot that you posted they are in a straight line, while in the project file sliced on my computer, they're clearly not. See the screenshot.

image

I will post the statistical analysis of the sliced project files tomorrow morning, as well as the actual printed part and we will go from there.

@cohaolain
Copy link

I am seeing "Slicing failed with an unexpected error" with the new build (5.4.0-beta.2+305e00) in one situation today. I've verified the issue doesn't occur with 5.4.0-beta.1. I'm unsure if it's related specifically to the smoothing operator though.

Project File: 20230705_tallneck_failing_540_beta2.zip
Engine crash log file: engine_crash.log

(Model from here)

@cohaolain
Copy link

Of all the STLs included in the model and 3mf above, looks like even body-middle-no-supports.stl on its own causes the crash.

@jellespijker
Copy link
Member

thanks @cohaolain best to open up a new issue for that crash, otherwise this ticket will be come one big collection box and it will never get closed.

@jellespijker
Copy link
Member

@qwerty8224 I did a bit of investigation on your shared project files and I can't find any occurrence of something resembling jagged paths. Analysing the toolpath lengths and directions in Paraview (see screenshot below) show that there are 9 segments in the whole print with a length below 50 micrometer, keep in mind that these are are not troublesome on their own, but they can be, if they occur in short repetition of each other (resulting in buffer underruns) or if the suddenly deviate to much in angle from the angle of the previous segment and next segment (jagged paths). All 9 segments (<50 micrometer) seem to be single occurrences and inline with the segment before and after.

image

Looking at the actual print, of your shared project file on a S5 also doesn't show any jagged paths.

20230705_073313

It could be that you observed a some visual rendering artifacts when you inspected the GCode in the preview view. Which made it seem worse? I would ask you to actually print the model on your printer such that we can rule that out.

Regarding the resolution of in the cffp profile:

maximum resolution is reduced to 0.04 and it should be 0.25

Yes it was indeed set to 0.04, which is to low for any printer in my opinion and not a realistic value. For us programmers and tester it is hard to guard and sanitize the output of Cura, while also allowing for a lot of fine-tuning of other settings. So it is entirely possible to create profiles which will result in weird undefined behaviour. This is why we have a whole department Print Process and Material which come up with good profiles and values for our UltiMaker printers. But we can't do that for all 3th party printers or Custom FFF printers. We rely on the community contributor or someone such as yourself to determine realistic values for their profile.

I did the same analysis with our Visual Debugger with Paraview and regardless of the used value: 0.04 or 0.25 for maximum resolution did not observe any jagged paths.

@jellespijker
Copy link
Member

I will close this ticket now, since we believe that the behaviour is improved if not fixed. I would love it if people that experienced this issue would download 5.4.0 and do some actual printing and report back if they still see any jagged paths. We can then reopen this ticket if needed.

If you're observing crashes or any other weird behaviour please create a new issue for that.

I would also like to thank the people who helped out with actually printing some stuff to validate my WIP build an such short notice.

On a side-note we will look into expanding our support for Klipper printers I believe @MariMakes has some plans about starting this up.

@qwerty8224
Copy link

thanks for your work.
But I still attach screenshots

1
2
3

@qwerty8224
Copy link

this is my profile maximum deviation 0.25
I understand that maybe I don’t know something, I’m not a professional, I’m an amateur, but just take it into account. Thank you.

@darrellenns
Copy link

@jellespijker What are you using to convert gcode to pvtu for paraview? I'd like to do a few comparisons of my gcode, and doing it in paraview seems much nicer than what I was doing before.

@jellespijker
Copy link
Member

thanks for your work.
But I still attach screenshots

1
2
3

it looks like you're using a very low max resolution please increase it to a value in the region of 0.5 mm

@jellespijker
Copy link
Member

@jellespijker What are you using to convert gcode to pvtu for paraview? I'd like to do a few comparisons of my gcode, and doing it in paraview seems much nicer than what I was doing before.

We have a closed source visual logger to help us debug the engine which outputs pvtu files.

@qwerty8224
Copy link

thanks, you're right, it's getting better, in general, you need to optimize the parameters for yourself.

@pedrolamas
Copy link

On a side-note we will look into expanding our support for Klipper printers I believe @MariMakes has some plans about starting this up.

Off-topic, but really looking forward for the direct Klipper support in Cura! 😁

I currently maintain Fluidd (Klipper web interface) and am a regular contributor to Klipper, Moonraker, and even Mainsail, so if there is anything I can help to get this going, please don't hesitate in contacting me!

@MariMakes
Copy link
Contributor

👋 We are collecting feedback on how we can improve our support for Klipper printers in this discussion

I'll add this link to the Github release notes and will add an extra field in the issue templates where reporters can share that Klipper is part of their configuration to help with troubleshooting. 💪

If you have any feedback on how we can do better, we would love to see it in the discussion. ❤️

@poulpor
Copy link

poulpor commented Jul 5, 2023

Sorry for the late update, I wanted to test your 5.4.0-beta.2+305e00 build but when I tried to slice my test shape (the one I've posted pictures earlier) with it, I got the "Slicing failed with an unexpected error" message. Strangely, when I changed the model scale in Cura to anything higher than 100%, even 100.1%, the slice worked fine, but I chose to wait for the final release.
So, I tried today the final 5.4.0 and the slice worked fine, I kept my default Marlin settings, nothing fancy (fine quality 0.2mm at 60mm/s print speed).
The print looks OK and I didn't find any zit/blob, so thank you very much for this quick fix!
Will keep an eye on this ticket in case of further developments.

The white model print was sliced with 5.3.1, the blue one with 5.4.0.
20230705_231359

@darrellenns
Copy link

I ran some slicing tests with 5.4.0, and I no longer see the short sharp angle segments on large radius curves like in 5.3 versions. So, at least in my test the changes seem to have fixed that issue.

If this has been solved by filtering out short/sharp segments, I do wonder if that could negatively affect fine details. I don't really have a good test procedure for that though. Was there already some testing/validation done in the development of the fix to make sure it's not smoothing out details that should be there?

A huge thanks to @jellespijker and everyone else involved with testing and fixing this issue.

@jellespijker
Copy link
Member

Thx @darrellenns for providing additional feedback.

No need to worry about negatively affecting small details. The fix was smoothing the shapes from which the toolpaths are being generated. I took your concern into account and developed an algorithm which only acts upon very small line segments (< 50 micrometer in length this will probably be a new setting in Cura 5.5) but on top of that these line segments also need to deviate an certain angle when look at the previous segment of the shape and the next segment of the shape. This extra filtering conditions further ensures that we only act upon lines which are probably not "intent" of the model; most likely created during previous morphological operations and not filtered out during the simplification since it didn't fulfill the conditions of that over-constrained algorithm.
Since this smoothing operation will not remove points but only shift them along the direction vector of the previous or next line segment and only do this if that line segment is at least twice as long as that shifting distance.

This will result in a more continual movement of the printhead since it doesn't need to slow down to make that sharp corner, for a line segment which is relatively unimportant to the whole shape.
MovingDot_ManimCE_v0 17 3

After shifting point B towards A and C towards D, the head doesn't need to slow down as much to make the corner.

MovingDot_ManimCE_v0 17 3

And the actual affected surface area is relative small. Remember the size of the dimensions used. BC < 50 micrometer
image

@darrellenns
Copy link

@jellespijker Thanks for the detailed explanation and nice diagrams! This seems like a good approach to me, and I'm no longer concerned about fine detail quality loss.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Status: On Backlog The issue / feature has been reproduced and is deemed important enough to be fixed. Type: Bug The code does not produce the intended behavior.
Projects
None yet
Development

No branches or pull requests