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

Documentation on profile inheritance? #3566

Closed
icanhazpython opened this issue Jan 23, 2020 · 7 comments
Closed

Documentation on profile inheritance? #3566

icanhazpython opened this issue Jan 23, 2020 · 7 comments

Comments

@icanhazpython
Copy link

So I'm having trouble finding a concise answer on how profile inheritance works. I know you guys have an insurmountable mountain of issues here to sort through, so I'll apologize in advance and hope I don't piss off anyone with this info request. Anyways here's what I have gleaned:

  • I think I may have read a post earlier from a dev here that inheritance is not true inheritance; it would be complicated to develop that. However I'm not sure how to reconcile that with the fact that I see chains of inheritance going sometimes 3 levels deep within the stock PrusaSlicer.ini config. I'm not really sure at this point if parameters set on say the generic PETG profile would carry over to a profile 3 times removed.
  • When exporting config bundles, prusaslicer seems to like to write ALL parameters into each profile, regardless of what it inherits. Would it be advisable to strip out everything from a profile that doesn't differ from the inherited profiles? Or should I set those parameters to "nil"? I see that the new filament retraction overrides in the filament profiles implement nil for unset parameters, however I'm not seeing nil used elsewhere in the profiles.
  • I'd like to have a config bundle with my custom profiles, but I'm divided on whether I should keep the export as-is, with prusaslicer adding every possible parameter, or if I should strip out anything that hasn't changed from its inherited profiles, in the interest of keeping things clean, maintainable, and retaining the ability to benefit from any updates to the inherited profiles that come in from you guys. I guess I'm wondering what kind of updates generally happen to pre-existing profiles, and would I want to allow those updates to potentially alter my custom profiles, or should I keep my profiles completely detached from any automated updates to the in-built profiles? I'm looking for a general consensus here.

I hope that this thread could benefit others looking to distribute custom profiles in a clean and maintainable manner. Thanks in advance.

@bubnikv
Copy link
Collaborator

bubnikv commented Jan 23, 2020

I think I may have read a post earlier from a dev here that inheritance is not true inheritance

It is a true inheritance.

I'm not really sure at this point if parameters set on say the generic PETG profile would carry over to a profile 3 times removed.

They do.

When exporting config bundles, prusaslicer seems to like to write ALL parameters into each profile

There is a good reason for that. Such file contains all the information. If we change the system profiles, you will see those parameters marked as differing from the system preferences.

Would it be advisable to strip out everything from a profile that doesn't differ from the inherited profiles?

yes

Or should I set those parameters to "nil"?

no

I'd like to have a config bundle with my custom profiles, but I'm divided on whether I should keep the export as-is, with prusaslicer adding every possible parameter, or if I should strip out anything that hasn't changed from its inherited profiles, in the interest of keeping things clean, maintainable, and retaining the ability to benefit from any updates to the inherited profiles that come in from you guys.

If you are creating your profiles for your machine, you should not inherit from PrusaResearch configs. Indeed, once you provide us with your config bundle and if it is structured to be used by the install wizard, then PrusaSlicer does not allow inheriting across these config bundles. You really should follow the example of the Creality profile that we are providing with the latest PrusaSlicer-2.2.0-alpha2.

@icanhazpython
Copy link
Author

Thanks for the reply. I'm looking at the creality profile now. A couple questions regarding that:

  • Is there any technical significance to the "@" appended to the config name: print:0.12mm DETAIL @ENDER3? Or just a way to delineate in the UI that said config is intended for a specific printer? Any reason to do this even when the profiles will be shown/hidden based on the compatible printers condition?
  • When you said "provide us with your config bundle and if it is structured to be used by the install wizard, then PrusaSlicer does not allow inheriting across these config bundles", I'm surmising you mean that anything calling for inheritance in Creality.ini will not be able to inherit from PrusaResearch.ini, so in effect each of these configs is completely siloed off from each other?

The specific configs that I'm interested in sharing are only filament configs. I used to have printer profiles for retraction settings, but with the new retraction overrides, I've been able to pull those settings into the filament profiles and get rid of my printer profiles. So thanks for that! My aim is to distribute some filament profiles on github for a few filaments that I like to print with and have tweaked for best results on the prusa series of printers.

@rtyr
Copy link
Collaborator

rtyr commented Jan 23, 2020

The "@" sign in the preset name is a separator of a logical name from the full name. Logical name of the print preset is used in the main screen. It is also used in the configuration wizard (filaments selection). See release notes for 2.2.0-alpha1,

Inheriting across different config bundles is not allowed (each bundle is using its own filament profiles).
end

@icanhazpython
Copy link
Author

Ah I get it! I think all my questions have been answered. Thanks for that little lesson, I appreciate it and I'm sure others will as well when they go looking for this thread. 👍

@bubnikv
Copy link
Collaborator

bubnikv commented Jan 24, 2020 via email

@bubnikv
Copy link
Collaborator

bubnikv commented Jan 24, 2020 via email

@bubnikv
Copy link
Collaborator

bubnikv commented Jan 24, 2020 via email

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

3 participants