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

There is a way to completely eliminate the visible seam. #17713

Closed
vgdh opened this issue Dec 20, 2023 · 37 comments
Closed

There is a way to completely eliminate the visible seam. #17713

vgdh opened this issue Dec 20, 2023 · 37 comments
Labels
Status: Triage This ticket requires input from someone of the Cura team Type: New Feature Adding some entirely new functionality.

Comments

@vgdh
Copy link

vgdh commented Dec 20, 2023

Hide the Seam Completely

Explanation

Every closed loop will eventually have a visible seam. However, if there is no specific point where the line ends, there is no seam, right?

  1. Begin the line with a height of 0 and gradually increase the height of the nozzle and the line over some length until it reaches the full height of the line.
  2. Move through the loop until reaching the end of the line, but continue extruding the filament due to the initial zero line height. Systematically reduce the line's height while maintaining the same nozzle height until reaching the end of the starting slope.
  3. Move on to the next perimeter or infill.

That's it. The algorithm is remarkably simple, though the result is astonishingly good.
It is not an easy task to post-process already existing GCODE files, but if it works at the slicer level, it will work very well.

The python code

The repository includes an example demonstrating a basic implementation of the algorithm for printing a ring. This implementation allows specifying parameters such as the number of lines in the ring, layer height, line width, speed, etc.

Also there is an example of gcode file for 0.4 nozzle line 0.3x0.6 layer height 0.3

Photos of the Seam Details on the Printed Example.

The first layer (the top on the first photo) was printed without the algorithm to get better adhesion.
botom 2
botom 3
photo_1_2023-12-20_16-13-32

In the photo below you can see there is no gap between the lines.
top 1
side 1
botom 1
center 1
top 2

Describe the solution you'd like

I created and tested the algorithm to hide the seam completely. It would be nice if it will work within the slicer.

Describe alternatives you've considered

_

Affected users and/or printers

all the community

Additional information & file uploads

No response

@vgdh vgdh added Status: Triage This ticket requires input from someone of the Cura team Type: New Feature Adding some entirely new functionality. labels Dec 20, 2023
@vgdh vgdh changed the title There is the way to completely eliminate the visible seam. There is a way to completely eliminate the visible seam. Dec 20, 2023
@5axes
Copy link
Contributor

5axes commented Dec 20, 2023

Must be tested , Gcode looks like for a direct-drive extruder ( very small retract distance) need to validate also for bowden extruder type . Seems simple enough to integrate into a post-processing script.
superslicer-gcodeviewer_pefZIVVLYq

@5axes
Copy link
Contributor

5axes commented Dec 20, 2023

Edit : Not totaly convice .. on my Ender-3 I still have a seam , in fact 2 seams . One at the beginning the other one at the end of the slope area . And I'm not sure that a printer can respect the instruction of Z=0.43124999999999997. At the start of the slope, as the height above the previous layer is zero, it looks as if the nozzle is rubbing against the previous layer.

So good Idea ... but this doesn't seem to be an universal solution.

@vgdh
Copy link
Author

vgdh commented Dec 20, 2023

works well on the cheepest kingroon kp3s with klipper

@5axes
Copy link
Contributor

5axes commented Dec 20, 2023

I think that for some machines, this could be a solution.

On my bowden Extruder doesn't get a nice result :

External Start of slope Area
image

External End of slope Area
image

@GregValiant can you test on your own printer ? Gcode tested on Ender-3 : https://github.com/5axes/seam-hiding-whitepaper/blob/main/ender-3%20nozzle%200.4%20line%200.25x0.4.gcode

@nallath
Copy link
Member

nallath commented Dec 20, 2023

Unfortunately, this looks suspiciously like a method that has been patented. If i'm right (and it's indeed patented), this will prevent us from adding it :(

@vgdh
Copy link
Author

vgdh commented Dec 20, 2023

I think that for some machines, this could be a solution.

On my bowden Extruder doesn't get a nice result

I think bowden can't provide the right accuracy of flow rate. May be it for direct machines only.

@fieldOfView
Copy link
Collaborator

What if someone were to implement this as a CuraEngine plugin though? Ultimaker cannot help what external contributors implement, right?

@vgdh
Copy link
Author

vgdh commented Dec 20, 2023

What if someone were to implement this as a CuraEngine plugin though? Ultimaker cannot help what external contributors implement, right?

that is true

@5axes
Copy link
Contributor

5axes commented Dec 20, 2023

What if someone were to implement this as a CuraEngine plugin though? Ultimaker cannot help what external contributors implement, right?

If you don't want to put it on the market place, why not, but personally Ultimaker refused one of my plugins because it used a common font that was not free to reuse to make an STL model, for example. So I think it would be the same here.

Now, if there is a patent, we'd still have to check its content. Sometimes, depending on the content, there's always the possibility of a similar but different approach that would render the patent null and void. @nallath do you have a link to this patent ?

In the method shown, we start from a Z 0 offset with a zero flow and work towards the layer height, then zero flow again. You could, for example, start from a larger offset with non-zero flow to finish the slope before the Z of the layer. This is another method that could be beneficial to extrusion, as we know that machines aren't really capable of handling very low flow rates. That's one way of working... Maybe I'll apply for a patent ... Shit, it's too late, because I've written it does mean it's not possible anymore.

@nallath
Copy link
Member

nallath commented Dec 21, 2023

The patent I was worried about is this one https://patents.google.com/patent/US8349239B2/en but it only makes claims about the XY plane. So by including the Z plane it should put you in the clear (but I am not a lawyer, so do not take my word for it)

@nallath
Copy link
Member

nallath commented Dec 21, 2023

I think that for some machines, this could be a solution.
On my bowden Extruder doesn't get a nice result

I think bowden can't provide the right accuracy of flow rate. May be it for direct machines only.

I think that should be possible. You can't change the flow quickly, but you can change the speed quickly. So instead of changing the flow, you just change the speed of the nozzle. That's what we do for Arachne currently

@5axes
Copy link
Contributor

5axes commented Dec 21, 2023

The patent I was worried about is this one https://patents.google.com/patent/US8349239B2/en but it only makes claims about the XY plane. So by including the Z plane it should put you in the clear (but I am not a lawyer, so do not take my word for it)

It's not the same solution and I don't think this point could be cover by this patent .. There are an other Enhancement request on this Github concerning this patent and how to reduce Seam : #5728 (comment) This one is exactly what the patent describe.

@vgdh
Copy link
Author

vgdh commented Dec 26, 2023

I have written some post-processing script. Feel free to test, modify, or contribute.

@vgdh
Copy link
Author

vgdh commented Jan 1, 2024

Now the script processes only the outer perimeters, printing the inner ones as usual.

@vgdh
Copy link
Author

vgdh commented Jan 1, 2024

bender likes it very much 😁
1704131531564
1704131531621

@GregValiant
Copy link
Collaborator

20211101_085428

@vgdh
Copy link
Author

vgdh commented Jan 31, 2024

This feature in now implementing by OrcaSlicer: SoftFever/OrcaSlicer#3839
Feel free to participate.

@5axes
Copy link
Contributor

5axes commented Jan 31, 2024

Looks like I'll have to do some more OrcaSlicer this WeekEnd ;)

@Sophist-UK
Copy link
Contributor

Also now implemented implemented in Prusa and I have a different OrcaSlicer reference slicers.

This picture is from the Prusa PR:

Prusa example from their PR

See also https://www.youtube.com/watch?v=vl0FT339jfc

As an interim could anyone implement this as a PostProcessing script?

@5axes
Copy link
Contributor

5axes commented Mar 2, 2024

For the moment, this function is only integrated into Orca : SoftFever/OrcaSlicer#3839

There has been a lot of work between the original script and the version that has just been integrated. So I'm not sure that integration via a script in Cura is possible. The Cura team will have to integrate this function in Cura natively, but I'm not sure that this is one of their priorities. There are still steps in development, notably with an adaptive option where the scarf joint seam would only be integrated on contours without sharp angles, as in this case the use of this option is counter-productive.

@5axes
Copy link
Contributor

5axes commented Mar 3, 2024

New option in OrcaSlicer : SoftFever/OrcaSlicer#4317 : Conditional Scarf Joint

@printingotb
Copy link

This is somewhat of a gamechanger. Would love to this in Cura :D

@GregValiant
Copy link
Collaborator

@5axes Sorry about this late reply. I just saw the updated comments.
I changed the retractions in that gcode file to 6.5. My results were exactly the same as yours with two seams on the exterior about 180° apart. There were also two seams on the interior.
This was sliced with Orca 2.0dev. The seam on the backside was unobtrusive but visible. This scarfed seam wasn't too good. It may have been better if there was some extra prime, but that is something I've never had to use.
DSCN3244

As with the example gcode - there was a lot of cross-print travel which lead to stringing (PETG). That may have been a result of my inexperience with Orca.
Between the stringing, under-extrusion, and poor seam quality my opinion (as of 8:01AM EST) is "Not yet".
That is of course subject to change on a whim.

@5axes
Copy link
Contributor

5axes commented Mar 6, 2024

You can do better ... maybe it's time to leave Cura and invest time in another solution :)

@GregValiant
Copy link
Collaborator

I like the customization possible with Cura. I also prefer the interface (as clunky as it is). I prefer the supports as well.
The "I refuse to slice this" bug hasn't affected me much. It mostly occurs with organic shapes and I don't print very many of those. Industrial type things haven't been a problem.

I have ported all 28 of my post-processors to VB. I can open a gcode file created by Prusa, Orca, Bambu, and IdeaMaker, as well as Cura and Creality - post-process them, and write a new gcode file. The VB code needs to be cleaned up and organized better, but they work.

@5axes
Copy link
Contributor

5axes commented Mar 6, 2024

Pro
Cons

  • Cura is Slow compare to the other slicer
  • How many modification / plugin are useless in other slicer as function are natively implemented
  • The development dynamic is more active on other slicers

@moccor
Copy link

moccor commented Mar 6, 2024

Among many other reasons, Cura has cloud backups and plugins like "Filament Settings" that make it have far better customization and saves lots of time compared to others.

I have a Ender V3 SE with a pretty well-tuned Klipper atm, is there some easy way to try this scar method to provide some direct-drive (0.6mm retraction). I assume I just download the gcode file and edit it as needed?

@GregValiant
Copy link
Collaborator

The Gcode is sliced in Relative Extrusion. You can go through and replace the retract and prime lines with the retract distance of your choice. "As received" the retract distance is 0.5.
I changed the retract distance to 6.5 and I copied the startup and ending gcodes from another file and pasted them into the scarf gcode. It worked fine.

@5axes
Copy link
Contributor

5axes commented Mar 12, 2024

Orca Slicer 2.0 beta with Scarf joint seam with the option Conditional scarf joint (only on smooth contour) and slowdown for scarf joint :
https://github.com/SoftFever/OrcaSlicer/releases/tag/v2.0.0-beta

@nerdguy1338
Copy link

Unfortunately, this looks suspiciously like a method that has been patented. If i'm right (and it's indeed patented), this will prevent us from adding it :(

Isn't this too simple to be patentable?

@5axes
Copy link
Contributor

5axes commented Mar 16, 2024

You can have a patent on a "simple" Idea. But concerning this discussion and the mentionned patent, it's not the same solution so in the present case there is no limitation to use it in Cura.
Second pointthe scarf seam is not any more a simple solution. After a lot of tests and prototype the solution and number of parameters is now much more significant

@T9Air
Copy link
Contributor

T9Air commented Apr 9, 2024

What is the difference between this and vase mode?

@vgdh
Copy link
Author

vgdh commented Apr 9, 2024

What is the difference between this and vase mode?

It's already been implemented in OrcaSlicer feel free to try.
Vase does only one line width wall and this method can do any number of lines in a wall.

@Sophist-UK
Copy link
Contributor

Base mode does a single continuous wall spiralling round and round.

Scarf joins are like a wooden scarf joint. It starts a wall (any wall) by creating a gradually thickening extrusion (raising the height and extending more) over a short distance until it gets to the normal layer thickness, creating a sloping start to the layer. Then it does the rest of the wall normally. When it gets back to the start point it goes over the sloping part again, gradually reducing the extrusion amount so that it fills the sloping area to the normal height.

I have tried this with orca and it is NOT a magic solution to seam bobs caused by oozing - you need to get your retractions and/or linear advance right first.

@Sophist-UK
Copy link
Contributor

If you think about how this works, the total amount extruded is (in theory at least) identical to a normal wall, so I think it should easily be within the bounds of possibility to achieve this with a post-processing script.

@5axes
Copy link
Contributor

5axes commented Sep 6, 2024

#19571

@vgdh
Copy link
Author

vgdh commented Nov 6, 2024

This feature has been implemented in the latest cura release.

@vgdh vgdh closed this as completed Nov 6, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Status: Triage This ticket requires input from someone of the Cura team Type: New Feature Adding some entirely new functionality.
Projects
None yet
Development

No branches or pull requests

10 participants