supermerill / SuperSlicer

G-code generator for 3D printers (Prusa, Voron, Creality, etc.)
4.05k stars 515 forks source link

Exclude certain print speeds #4105

Open RURon opened 5 months ago

RURon commented 5 months ago

I've come to look at undesired resonances at certain speeds with my CoreXY printer (using Klippain macro) and now that I got rid of all unwanted motion speeds in the speeds settings in Superslicer, the only problem is when Superslicer reduces print speeds due to minimum layer time for a filament. Of course also relative print speeds may result in unwanted speeds.

So I would like to suggest an option to name speed intervals that should be avoided. As this would be printer (and not filament) specific, I suggest to include this into the printer settings (maybe machine limits?). One way could be a text input field where the user could enumerate unwanted speed intervals like "50-80,120-150,300-330" or anything more fancy of course.

While slicing, if print speed falls into one of those unwanted corridors, the next slower (or faster, maybe a user preference?) would be picked.

TheSlashEffect commented 3 days ago

I like this idea. Seeing how common CoreXY printers are nowadays plenty of users should benefit from this. If nothing else comes up in my schedule I will spend some time looking into this.

mara5a commented 1 day ago

This is a good idea. But it will have to be a bit more sophisticated as the excluded speeds change depending on direction of the move for CoreXY printers I think.

RURon commented 1 day ago

This is a good idea. But it will have to be a bit more sophisticated as the excluded speeds change depending on direction of the move for CoreXY printers I think.

While I agree that there might be differences for each motion axis, from my printer (VCoreXY) I can tell that I can find speed bands where every motion is silent (which is probably a desired achievement to have a robust motion system that does not start to oscillate at some movements)

TheSlashEffect commented 1 day ago

That is true, 45 degree angles are nastier than moving along the X or Y axes. However, taking this into account would make the feature very complicated for little gain. Implementation would be difficult to implement/maintain, and bugprone afterwards unless plenty of things are refactored. In addition, users would have way too many parameters to tweak. We don't know how each printer behaves to say 50 degree vs 45 degree movements. I believe simpler is better here.

That being said, I did have the idea of implementing a warning feature informing the user of fast moves near the 45 degree line.

supermerill commented 1 day ago

If an extrusion has a speed between two ok band, the speed is reduce to the lower one, the nearest one?

mara5a commented 1 day ago

If an extrusion has a speed between two ok band, the speed is reduce to the lower one, the nearest one?

That could be user choice (lower, nearest, higher). But I'd guess default would be lower one