Skip to content

A method for less visible seams #11621

@MichaelJLew

Description

@MichaelJLew

The problem presented by the seams at layer change needs little introduction. It is sometimes trivial and sometimes important and PrusaSlicer offers a lot of variables that can alter the seam location, form, and visibility on the model. However, there is often no good way to prevent the seam from being #intrusive.

I have a method for making seams in my 'hand-made' gcode that are far less intrusive than those that I can achieve using PrusaSlicer. I believe that the method would be readily incorporated into the slicer and should be offered as an option.

I call the improved seam a 'scarf seam' because it is similar to a scarf joint that woodworkers might use to join two pieces of timber end to end. The scarf joint is conceptually simple as it simply has matching tapers on the ends of the timber that are glued together. A long taper gives a strong joint.

The standard seam can be described like this: the nozzle is positioned at the start of a perimeter at the z-height that is a full layer height above the previous layer. Extrusion starts and the nozzle moves around the perimeter until it arrives back at the start position whereupon the nozzle movement and extrusion stops. The scarf seam differs in that the nozzle starts at the same z-height as the previous layer. The Z-height is gradually increased as the perimeter is printed until it reaches the full layer height. (That is one of the scarf tapers.) The perimeter is then printed normally until the nozzle reaches back to the starting XY location, whereupon the nozzle retraces the first taper with a complementary taper where the layer height is decreased gradually to zero but the z-height is fixed. (That makes the second taper.) After the second taper is complete the nozzle can be moved away to complete the rest of the layer in the normal manner.

The low visibility of the scarf seam comes from the fact that the discontinuity of the joint if spread over the gradual tapers. When the nozzle is moved to the outer perimeter to start a scarf seam it is moved with effectively zero layer height and so there is almost no artefact from that movement. The scarf seam is compatible with any object shape, but I used a cylinder for the example for my own convenience. (I normally print fountain pen parts and most of my printing is pseudo-cylindrical objects with gcode from custom-written software and so I have a big library of cylinder-related functions.)

The scarf seam has a couple of possible disadvantages. First, it gives a region of variable layer height that may sometimes be visible. Second, it will be slower than the normal seam because it involves the nozzle moving twice over a part of the outer perimeter. That speed difference may be trivial in many cases as the scarf distance can be small compared to the perimeter total, and the outer perimeter is a small part of most printed objects. Finally, the scarf seam requires that the outer perimeter be printed first so that the first taper does not foul adjacent extrusions.

Example file

The attached file was generated by PrusaSlicer and then gcode generated by custom software appended. The PrusaSlicer settings were for the MK4 (no IS) and used the 0.20 QUALITY setting for Prusament PLA with the following changes from the defaults: no retract on layer change; no wipe; external perimeters first. The seam was painted on to force it to align with the seams from my software.

The first 6mm of the cylinder are the PrusaSlicer output. The region between 6mm and 12mm has a scarf seam with the tapers extending around the full 360 degrees of circumference. Between 12mm and 18mm the scarf seam has aligned tapers over 80 degrees of circumference. The alignment requires a retrograde travel move after each layer. The last section, 18mm to 24mm, has the 80 degree scarf but does not re-align the seams and so the seam moves by 80 degrees at each layer change.

Various seams

cylinder d=12 h=6 v2d.gcode.zip

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions