scarf-seams
Warning
This is an experimental tool in a pre-release state. Post-processing gcode is complicated, and bugs could cause your printer to try to move your nozzle out of bounds (including crashing into the print bed). The code attempts to protect against these cases, but there is no substitute for examining the output gcode in a gcode previewer before printing. Use at your own risk.
Purpose
There has been some experimentation recently with hiding seems with 3D printing. This repo and this PrusaSlicer pull request discuss the technique, and provide examples using custom generated gcode. However, these examples only allow creating a cylinder.
This tool will allow you to load an arbitrary (see requirements below) gcode file and apply the technique to it.
Requirements
Your gcode file must meet the following requirements:
- Marlin gcode
- Absolute positioning for the XYZ coordinates (this is very typical)
- Relative positioning for extruder (also typical)
- No arc moves during actual printing. (You may need to turn off "arc fitting" or similar in your slicer)
- Fixed layer height (which should match the layer height you set in the form above)
- No "seam gap" in the original gcode. This setting is often set by default to avoid extra material building up at the seams, but it interferes with loop detection. You should set it to zero in your slicer.
In some cases, the tool will detect these issues and alert you. In other cases, code where the requirements are not met will simply be skipped over. Always use a slicer or similar tool with a gcode preview to verify the output file.
Parameters
Layer Height - The layer height of your print. This should match the layer height used in your slicer.
Overlap Distance - The distance to overlap the ends of each loop.
Seam Gap - A fudge factor for preventing zits around the seams. This will end the taper early so that an excess of material doesn't build up. The correct value will depend on your printer.
Extrusion Factor - Another fudge factor to reduce effective overextrusion or underextrusion. This will scale the extrusion amount in the overlap region.
Loop Tolerance - The maximum distance between the start and end of a loop. If you can't turn off the "seam gap" setting in your slicer, you can compensate it by increasing this value. Note that this may cause artifacts in some cases by incorrectly identifying small, intentional gaps as loop ends.
Taper Resolution - The size of the steps in the taper sections which ramp up extrusion and Z height. The smaller this is, the larger your output gcode will be. Theoretically, you could set this so low that your printer would struggle to read the gcode fast enough during printing. Larger values may cause noticeable stair-stepping. You probably don't need to change this setting.