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

A few small changes that I think would make Prusaslicer better (or at least make me use it) #10168

Open
LiterallyKey opened this issue Mar 26, 2023 · 12 comments

Comments

@LiterallyKey
Copy link

TLDR: I love mouse ears and is the #1 reason why I primarily prefer Superslicer over Prusaslicer. Superslicer's implementation could just be copied for a (I assume) simple way to make Prusaslicer better, but there are also some potential ways to make it even better. I would honestly be pretty happy and switch to Prusaslicer as my standard with just that change alone, the rest of what I would like to see are mostly just adding more control and quality of life features. Solid infill specific pattern and encroachment settings as well as chamber temp would also be relatively easy and more important. Most of the rest are probably too much of a change or too complex to be realistically added, so maybe it would be better to figure out how to make a fork and try them myself (which is unlikely to happen)

I apologize if this isn't the place or way to do this, but I figure there might be a small chance it could be useful to outline exactly what I personally would like to see in Prusaslicer and where I think it is limited. It turned out extremely long though.

For context: I have primarily been using Superslicer for my Voron because it has more of the features I want, although I've been trying to decide if it's worth switching to the 2.6 alpha because it also has a lot of really interesting features and I've been using it for my Prusa Mini and Ender 3 v2. I operate a print farm at work consisting of 6 Prusa i3s (one of which has an MMU) which we use Prusaslicer 2.5 for, a Markforged Mark Two which obviously uses Eiger, and some custom machines which we also normally use Prusaslicer for as well. I started with Cura and play with it occasionally, but only know it enough to help people with it a bit. As you'll see, most of the the features I would like are from Superslicer.

The #1 thing I want and is keeping me from going to Prusaslicer is mouse ears.
I absolutely love them and love Superslicer's implementation. I much prefer them over brims as I find that it's often just the corners that are needed and Superslicer's settings allow good tuning on where they end up. Less wasted time and material, but moreover easier to remove and can stay out of areas that are harder to clean up. The only flaw I've noticed in Superslicer's implementation (that I can remember at least) is that it would be nice if you could add more brim to corners instead of only having brim around corners. That way you would end up with a slightly dynamic and more efficient brim, with a smaller brim where it isn't as important and wider at corners and such. An alternative implementation I could see if you could be if you could change brims with modifier meshes such that it could be used to manually create mouse ears with a concentric pattern so it's easier to remove (could also just add the ability to change the solid infill pattern per part so you can add shapes to a similar effect). It would obviously be best to have both implementations, but that could end up being too much work and too many things to go wrong.
Bonus points: I think it would be amazing if brim settings could be a material override so they can be automatically added for materials like ABS but removed for PLA so that users won't forget and lose a print.

[For those who haven't seen Superslicer's mouse ears: in the brim settings, there is a checkbox to enable "mouse ears" which also enables you to change the max angle, detection radius, and pattern. When mouse ears are enabled, it acts as an override and will make a brim with the same settings as set with the normal options, but only around where it sees a change in angle measured within a given radius (not instantaneous change in angle but how much an angle changes within a given area).]

The main additional features that Superslicer has that Prusaslicer doesn't are sparse internal solid infill (additional thin supporting layer to help support top layers and reduce how much infill is needed for a consistent and solid surface) and of course some at least basic calibration tools. I'm sure calibration tools are a common request, but here are my two cents anyway. At a minimum, I would love to see Prusaslicer have first layer calibration (so it can be automatically sized to the bed), temperature calibration, retraction, and of course flow. I would love to see ironing, bridging, overhang, hole, and general dimensional accuracy calibration as well. It would be nice if max flow calibration was also built in, ideally CNC kitchen's tool in addition to a test pattern that doesn't require a milligram scale. It's a stretch, but it would also be nice if there were tools to easily tune things like encroachment, line spacing, and other advanced features, but that's probably a bit much.

Other than that and things I imagine are already being worked on or have been talked about, the main things I would like are in the theme of adding control and ways to do things. I imagine most of these wouldn't be desired features since most are things that only the people who are really pushing their machines would use and so might just add bloat for most users, but nonetheless these are some of the main things I've noticed or come up with (gets more advanced and I imagine less likely to be done as the list goes on):

  • Solid infill settings
    I've had issues that looked like really bad pressure advance settings in that there was a lot of extra material sticking up where solid
    infill met perimeters and causing issues. that got fixed by changing the pattern to what Prusaslicer would probably call not
    connected rectilinear, so being able to change more than just the outermost layers would help with that.

  • Solid infill overlap/encroachment/anchor setting (separate from sparse infill)
    Does what it says on the tin. I expect it could help reduce things like the hull line or other artifacts from solid infill affecting surface
    finish. It should also be useful for the issue I was facing above since that shouldn't exist for sparse infill (since extra material can
    move) so I'd rather ensure it's anchored properly and a separate consideration from solid infill.

  • Chamber temp settings
    So it can be fed to macros more easily, or when not using macros to make it easier to park the hotend over the bed and use it as a
    chamber thermistor in the start gcode.

  • Layout customization
    Very simple, would just be nice to be able to change the layout of things. Namely if settings in a category are in a single or multiple columns, but if one could change which tabs settings are under that could also be great. It would obviously be even more amazing if you could add more advanced and niche settings similar to cura.

  • Speeds relative to max flow or other autopseed settings set in filament settings (or can otherwise be based on the material)
    Would allow for things like fast or slow profiles to stay the same even if the material has different flow limits or characteristics.

  • Hardware/machine setting modifiers/multiples, especially for hotend and extruder related settings.
    It's more important if the above feature is implemented, but it would be great if you could do things like add an offset, multiplier, or override (or some combination of the three) based offset or whatever to things like temperature, retraction, extrusion multiplier, max flow rates, etc. based on the machine or nozzle. It could also be nice if there was a checkbox to enable an additional z offset for glue/adhesive coatings. This would make changing nozzles and such easier, but more importantly makes managing multiple machines (and multiple tools) much much easier since you could use the exact same material profiles for almost any hardware instead of them being hardware specific. Namely, adding a hotend temp offset for a steel vs brass nozzle, changing flow rate limits for different hotends and nozzles, adding some amount of extra/different retraction between different hotends/nozzles, etc.
    I imagine there would have to be some combination in both machine and material profiles, such as if the material profile will abide by those overrides but moreover if the overrides change based on the material. Perhaps there can be a set of overrides in the machine settings as well as conditions such as what kind of nozzle it has, direct or bowden, etc that the material profile can use to decide what overrides/modifiers pays attention to in what conditions, but also so it can use different overrides based on what hardware is present instead of based on the machine settings (such as different materials needing different offsets for different nozzle materials).
    This is probably one of those features that could be difficult to implement (or at least implement cleanly without overwhelming people who don't need it), but would be an amazing quality of life feature since manufactures and enthusiasts could set global filament settings that will work seamlessly for any machine that has the matching settings set properly. Bonus points

  • Speeds relative to autospeed
    Obviously ties into the previous point a bit, but it would be nice if you could set max speeds to be relative to autospeed instead of
    perimeter speed.

  • Multiple autospeeds
    I imagine this would be harder to implement, especially with some of the other features (although I have some ideas on how all of them could play together that I can flesh out better and share if desired), but being able to set at least a high and low autospeed would be nice so that you can maintain the benefit from a more constant volumetric flow rate for features that benefit from being slower (and you don't want to compensate with extra cooling) while separately being able to have the faster features where I don't care (namely sparse infill) be as fast as possible (and ideally based on the filament as above, so fast features are as fast as the material allows and slower can be relative to it being a fast or slow profile). You can obviously think of other cases where it might be handy, although it would mostly be useful in conjunction with filament based autospeeds to handle any changes needed with ease so provides limited value unless hardware weights/settings are also implemented.

  • Flow (and ideally width) settings per feature
    Ties into the previous points and would likely be an easier way to handle the next point. This is obviously only really an issue when
    operating somewhat close to the limit of the hotend, but since different speeds mean different volumetric flow rates, different
    feature speeds may lead to different features being over or under extruded since the under extrusion curve is steeper. I especially notice it with arcane when it transitions between thinner features and infill. Being able
    to compensate for that should (I think) remove a lot of the compromises one needs to make when printing faster.

  • Dynamic flow compensation
    Definitely a fancy and advanced feature but one I would absolutely love. Obviously ties into the previous points but is a potentially better but more advanced implementation. The idea would be to input some data points or otherwise build a curve relating extrusion multiplier to volumetric flow. This would allow you to measure your hotend's flow characteristics and flow dropoff and have the slicer compensate for it so that you can get a very consistent extrusion no matter the flow rate. That would eliminate artifacts from arcane changing extrusion width, allows you to slow down some features without either the slower features being overextruded or the faster features under extruded. It would basically allow you to use the full capability of your hotend without issue (other than things like cooling and material properties when printing quickly of course). Would take your dynamic overhang and cooling features to the next level.
    If hardware specific overrides/modifies are also implemented, dynamic flow compensation might warrant hotend presets. If how different hotends and nozzles affect that curve can be characterized, it should be possible to combine those so that the influence of the hardware on flow rates can be applied to filament settings. That obviously raises some difficulties on how those will all be measured and all that and potentially add some more complexity (although it can be under advanced settings and not regularly seen or touched by most), but it it could make 3d printing damn close to plug and play. Lofty goal though.

Sorry for the huge wall of text. I just wanted to get my ideas out there adequately enough for someone more skilled to at least consider them. I definitely don't expect many (or likely any) of this to be implemented, but let me know if there is anything I can do to clarify anything or correct mistakes.

Thank you for coming to my ted talk

@LiterallyKey LiterallyKey changed the title A few small changes that I think would make Prusaslicer better (or at least make me use it as my primary) A few small changes that I think would make Prusaslicer better (or at least make me use it) Mar 26, 2023
@LiterallyKey
Copy link
Author

I realized that I titled this as being a few small changes, but a lot are fairly big...

@Tupson444
Copy link

I'm definitely interested in "Dynamic flow compensation" as it would be easier than my current workaround – I use Gcode substitutions, for example if infill is printed at higher volumetric flow than perimeters:

replace:
;TYPE:Perimeter

with:
;TYPE:Perimeter\nM221 S100 ; set flow to 100%

and

replace:
;TYPE:Solid infill

with:
;TYPE:Solid infill\nM221 S110 ; set flow to 110%

etc.

@Bumblebiber
Copy link

Bumblebiber commented Mar 28, 2023

For improved mouse ears you can create yourself some "table tennis rackets" easily, save them as .3mf and add them to your model.

image
image
image
image

image

Then just copy them and place them where ever needed.

image

Then mark them all and hit 'Merge'(important!)

image

image

You can also save 4 of them in your .3mf file so you can add them quicker to rectangular objects in the future.

image

@Bumblebiber
Copy link

I'm definitely interested in "Dynamic flow compensation" as it would be easier than my current workaround – I use Gcode substitutions, for example if infill is printed at higher volumetric flow than perimeters:

replace:
;TYPE:Perimeter
with:
;TYPE:Perimeter\nM221 S100 ; set flow to 100%

and

replace:
;TYPE:Solid infill
with:
;TYPE:Solid infill\nM221 S110 ; set flow to 110%

etc.

This is the way! Also great for fan control (e.g. turn it on for outer perimeters only).

@LiterallyKey
Copy link
Author

LiterallyKey commented Mar 28, 2023

I use Gcode substitutions, for example if infill is printed at higher volumetric flow than perimeters:

That's a really cool idea, I'm definitely going to play around with that.

@LiterallyKey
Copy link
Author

For improved mouse ears you can create yourself some "table tennis rackets" easily, save them as .3mf and add them to your model.

Yeah, but the problem is that they aren't concentric and instead are directly attatched and so harder to use without drawbacks. Having mouse ears as part of the brim generation allows it to be concentric and also have a seperatipn gap so you can use them with minimal artifacts on the finished part. Those also don't wrap around any outcroppings like Superslicer's do. Definitely better than nothing, but still not great IMO

@Bumblebiber
Copy link

For improved mouse ears you can create yourself some "table tennis rackets" easily, save them as .3mf and add them to your model.

Yeah, but the problem is that they aren't concentric and instead are directly attatched and so harder to use without drawbacks. Having mouse ears as part of the brim generation allows it to be concentric and also have a seperatipn gap so you can use them with minimal artifacts on the finished part. Those also don't wrap around any outcroppings like Superslicer's do. Definitely better than nothing, but still not great IMO

You can add the concentric bottom infill feature as well

image

@LiterallyKey
Copy link
Author

You can add the concentric bottom infill feature as well

Oh really? you can do that for just those sections and not the whole part? I guess I need to look closer and play with it more. I'm guessing saving them as 3mf instead of just adding a cylinder might help.

@Bumblebiber
Copy link

Bumblebiber commented Mar 28, 2023

You can add the concentric bottom infill feature as well

Oh really? you can do that for just those sections and not the whole part? I guess I need to look closer and play with it more. I'm guessing saving them as 3mf instead of just adding a cylinder might help.

Rightclick the object -> Add settings -> Infill

Tick "Bottom fill pattern" (first list entry). Then you can change it to what ever you want on the right side.

By the way, here's the video where I got the idea from:

https://www.youtube.com/watch?v=MCcFMDv_4eo

@neilmendoza
Copy link

Big +1 to this. Automatic mouse/brim ears are the big missing time saving feature in PrusaSlicer that makes me revert back to SuperSlicer.

TLDR: I love mouse ears and is the #1 reason why I primarily prefer Superslicer over Prusaslicer.

@Snuff1eupagus
Copy link

Clearly you have completely missed this ability, maybe you should watch this video.

https://www.youtube.com/watch?v=dhsbMmosbLU&t=4s

Enjoy

@m10d
Copy link

m10d commented Nov 28, 2024

There are multiple totally separate issues in this post. OP should close and re-open individual issues, that's the way issue tracking software works. This issue seems to have focused mostly on bunny ears which means it would be fine to edit the title & content to just bunny ears, moving any small discussion of the other requests to new issues as necessary.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

6 participants