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

Feature request: "prime/dwell tower" as alternate/extension to auto-cooling "slow down" #4006

Open
VanessaE opened this issue Jun 3, 2017 · 2 comments
Labels
Cooling Feature request This is an idea for a new feature in Slic3r Multiple Extruders

Comments

@VanessaE
Copy link
Collaborator

VanessaE commented Jun 3, 2017

Right now, Slic3r has the option to slow down the feed/flow rates of a layer to extend the layer time to meet a configured threshold. That works for some things, but not always for parts with small horizontal cross-sections, because creeping along too slowly in a small area, bumping to the next layer and repeating over and over as the part grows just dumps too much heat into that section, overheating it, and defeating the purpose of the slow-down feature. This problem is compounded when you use thinner layers.

In such cases, users are usually told to add more parts to the plate (or more copies of the single part), but that wastes filament if the user only needs the one part. Or, users are directed to add "sacrificial" columns/towers, but these require adding several custom settings, and they waste time if only a few layers need the extra delay.

To my mind, the best solution would be to have Slic3r generate a custom tower, to which several features would be applied when the user slices the model. It should be a cylinder, around 20 mm in diameter, with a sizable number of faces, to avoid having any sharp corners that could cause it to lift off of the plate, and each of its layers would vary in print time as needed.

  • The tower would be drawn with two bottom solid layers, no top solid layers, at least one perimeter, and possibly sparse, "aligned rectilinear" infill at 10-15% density.
  • At the start of each layer, Slic3r would add a command to move the nozzle to the exact center of the tower, before drawing anything on the layer.
  • Slicer should then do one of the following:
    • add a G4 command to dwell long enough to exceed the user's configured minimum layer time, followed by enough perimeters and sparse infill at normal speeds/flow rates, to re-balance the nozzle pressure...
    • or, omit the G4 dwell, print the perimeters slow enough to create the necessary delay, and do enough normal-speed sparse infill to re-balance the nozzle pressure.
  • Finally, a quick retract-travel-unretract to move to and start drawing the actual part island(s).

The flow rates for whatever's printed last in the prime/dwell tower should exactly match that of the first line of the part that are to be printed after the tower.

This would entail a couple of small changes to the Filament profile "Cooling" page:

  • "Slow down if layer print time is below..." would be re-worded to something like "Extend layer time to at least...".
  • A single checkbox would of course be added to enable the tower. When disabled, Slic3r would use its usual slow-down code, as needed, with no changes from the current behavior. When enabled, Slic3r would still use its slow-down code on the actual part(s), and would use the tower to further extend the layer time to the configured minimum, if the user's configured "Min Print Speed" would still be too fast. My reasoning here is that extremely small cross-sections are probably the result of a tall, thin section such as a clip-on mounting stud, and such things need to print quite slow to help keep the heated filament from pulling sideways on the part too hard, bending it around as the nozzle moves around. If "Min Print Speed" is set to zero, disable the slow-down entirely and use only the tower to extend the layer time. Default should be disabled.
  • Maybe a field to configure the number of perimeters for the tower. Default 2. Or just hard-code it.

The tower should automatically appear on the plate as soon as the checkbox is turned on, to allow the user to move it as needed before slicing. It should be displayed in some unique color, maybe light blue or so. Right-clicking the tower in the "3D" view should do nothing. A left-click should display something in the "Info" section on the right to indicate that it is a prime tower, as if the unique color weren't enough of an indication. 😛

If the user slices the model, and it turns out that no part of the model actually needs a delay, then the tower should be completely omitted from the sliced results and its color in "3D" view should change to grey or something, at least until the user changes a relevant setting. An appropriate notice should be added to the "Print Summary". As an aside, it might not be a bad idea to add a notice for when slow-down gets invoked, as well (if the tower isn't being used).

If the actual tower itself is enough to push all layer times over the threshold, then I guess the G4 dwell commands should be omitted from the final G-code, since those would all theoretically be 0 seconds anyway.

Theoretically, one could set the skirt to go the full height of the object, but aside from probably using more filament than a tower, this would trap heat near the model, defeating the purpose (at least if you're printing with PLA).

Mind that this is mainly for common single-nozzle setups, though I suppose dual extruder setups might be able to use it if the tower were made into an ellipse about 40x10 mm or so, and/or is printed with at least one perimeter per nozzle (so that both always get primed).

Also note that if you're using especially wide traces, you may run into excess pressure at retract, resulting in more stringing/ooze than you'd otherwise expect.

@lordofhyphens lordofhyphens added Feature request This is an idea for a new feature in Slic3r Multiple Extruders Cooling labels Jun 3, 2017
@VanessaE VanessaE changed the title Feature request: "prime/dwell tower" as alternate to auto-cooling "slow down" Feature request: "prime/dwell tower" as alternate/extension to auto-cooling "slow down" Jan 19, 2018
@VanessaE
Copy link
Collaborator Author

Issue updated to take @lordofhyphens' comments in our discussion on IRC into account.

@VanessaE
Copy link
Collaborator Author

VanessaE commented Jan 22, 2018

Updated again. I figured a more "scientific" test was needed regarding how this idea interacts with retraction:

p1170883

The lighting was positioned to grossly exaggerate the texture of the walls, to make the seams and print artifacts more visible to the camera. Aside from the starvation in the top-right piece, the prints are not nearly this rough and ugly in reality (though they could be better. Blame my crappy M5 threaded Z rods).

In these prints, all lines are fixed at 0.5 mm width, 0.208 mm layer height. The material is a nearly brand new (less than 2 weeks old at the time of this post) spool of Atomic Bright White PLA at 215°C. 1.5 mm retraction length at 50 mm/s, Marlin linear advance enabled at K=35. All four cylinders are 20 mm diameter, 10 mm tall. They were printed with a genuine J-head v8 (which is in good condition, and clean clear through), with my MK3 extruder design, with active cooling on the cold end, using a nearly brand new triangle-toothed drive gear (less than a month old, hasn't had more than 1 kg of filament run through it), with idler pressure that gives a monster amount of grip (but not so much that it crushes or distorts the filament), and drawing from a spool that's mounted on a very-low-drag bearing-based holder. In other words, I am 100% certain there are no feed ore heat creep problems.

Left: sacrificial cylinders set up to act like prime/dwell towers, each with two 5.0 mm/s perimeters. They're identical, except that the upper one has no infill, and the lower one has 15% aligned rectilinear infill at 60 mm/s. Both print first on each layer.

Right: single-wall, identical single-wall cylinders as test pieces, printed at 60 mm/s.

Top: the prime/dwell tower has no infill, and the test piece shows 10 to 15 mm worth of starvation at the seam on every layer.

Bottom: the prime/dwell tower has infill enabled, and the test piece shows a normal perimeter and seam.

My conclusion is that, while pressure drops to essentially zero while retracted, it quickly ramps back to whatever it was at on unretract, since the amount of filament compressed into the nozzle is the same as it was before the retract (ooze and stringing aside, though there was none here), so the slicer must plan ahead so that the change in flow is compensated for before the retract, because no hardware/software/firmware combo can cope with the instantaneous increase in flow rate that has to happen right after the unretract finishes (5.0 mm/s to 60 mm/s in these prints, for a 12x jump).

Not visible in the photo is that the infill in the lower prime/dwell tower is starved near the start, similar to the upper test piece, because its infill has 12x the flow rate as the perimeters.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Cooling Feature request This is an idea for a new feature in Slic3r Multiple Extruders
Projects
None yet
Development

No branches or pull requests

2 participants