prusa3d / PrusaSlicer

G-code generator for 3D printers (RepRap, Makerbot, Ultimaker etc.)
https://www.prusa3d.com/prusaslicer/
GNU Affero General Public License v3.0
7.72k stars 1.93k forks source link

Prevent 3mf files from overwriting filament/printer settings #6377

Closed wolph closed 1 year ago

wolph commented 3 years ago

Version

2.3.0

Operating system type + version

OS X 10.15.7 and Windows 10

3D printer brand / version + firmware version (if known)

Prusa MK3/S + MMU2S

Behavior

When opening an 3mf file my filament choices and colours are overridden and I need to select the colour/filament choices again. Additionally it will override the selected printer which means you need to reselect this every time before you can use print to octoprint.

  1. Select your own printer and filament in prusaslicer
  2. Close prusaslicer
  3. Open prusaslicer through a random 3mf file
  4. Your printer and filament choices have been replaced

I would prefer if prusaslicer would load the configuration options and not select them, or offer a dialog with the question to transfer the settings

Project File (.3MF) where problem occurs

slider-left.zip

traderhut commented 1 year ago

I would also add, that Yes, there is a faster way that I didn't think of until after I wrote the above, but you can, as you can load just the settings - there was some way to do it, I forgot how, but I think someone already mentioned in this ticket how to do that, so I won't try to look it up, but something like 'import settings' or something. So, maybe we knock off a step or two..

julie777 commented 1 year ago

I will add a slightly different perspective, or maybe this is just distilling the above into a more concise wording.

Normal Use Case - Open Project

When I create a model in Fusion 360 I save it as a 3MF file. This way the model has units for the dimensions which makes it complete. I never use STL files because of the lack of units. After I configure the model in PrusaSlicer and slice it I save the 3MF as my reference model and this is what I would upload to thangs.com for others. That way they have all the information to either print it the way I did or at least see what settings actually worked for me. (Ignore the possibility that I store the gcode files for printing copies later.)

Another Common Use Case - Import Object

What if I want to add multiple models to the plate to print them together. In this case the models might have different settings and that needs to be handled. In this case I want to import the model, not open the 3MF file and all its settings for everything. There will be some metadata that I want and some I don't? (I want the units) There will be some metadata that matches the current settings (which are from opening a previous 3MF, when adding another object, or default settings if the plate is empty.) In this case it would be nice to be shown the difference in settings between current, and the model being imported. Then I could choose which to use.

Conclusion

Open Project 3MF should use all the information from the project. Import Object from 3MF should show conflicting metadata and allow choosing which to use.

I believe that the differencing code for all the settings already exists, so this only requires adding a Choose Settings Dialog for the Import Object command.

lukasmatena commented 1 year ago

Behavior was changed in 2.6.0-alpha2. Can we close this?

screwyluie commented 1 year ago

I guess? I feel like the basic concern was addressed. I also feel like it could be handled better using the save settings comparison dialog. I suppose that gets shifted to a feature request now huh?

lukasmatena commented 1 year ago

It would be cleaner to open a separate ticket for that, given how convoluted this one became.

wolph commented 1 year ago

Behavior was changed in 2.6.0-alpha2. Can we close this?

The new behaviour looks much better. I still think the default shouldn't be "Open as project", but at the very least we now have a way to work around the issue :)

verne64 commented 1 year ago

As Neophyl mentioned, I've opened another issue which was caused by this "behavior change". This really bothers me, I'm trying to get used to first opening the software and the loading the file, but must say I'd much rather just double click the file in explorer. In my opinion this is a really bad way of solving this issue, resulting in an inconsistent user experience that forces me to have to think about which way I have to open a file (such a basic operation really shouldn't require any thought) and also having to explain this to people I'm sharing the file with (then wondering if they will remember how to do it, which they probably won't).

I can relate to the points being made, but I've grown accustomed to using project files and not rely on profiles as every job is different and requires unique tweaks and I don't use an MMU. I feel it would be better to revert to the old way of loading project files and just add a functionality to let users choose their default profiles for when they start the software regularly, I think that would solve Wolph's issue as well right?

wolph commented 1 year ago

The latest version (2.6.x and up) of PrusaSlicer asks what to do when opening a 3mf file so my issue has been solved :)

verne64 commented 1 year ago

I'm on 2.6.0 and don't think I ever got asked, nor can I find a setting to change. Does anyone know if there is a way to trigger this dialogue (e.g. resetting to default settings and opening a 3mf)?

lukasmatena commented 1 year ago

@verne64 Configuration->Preferences->Show load project dialog. The option is enabled by default, you may have already confirmed the dialog with "Don't ask again" checked.

allanonmage commented 1 year ago

I got 3mf files shoved in my face and the stupid files are changing all sorts of things. I don't want a file of an object to change printer settings. A suggesstion to change them is OK. I have lots of custom settings that are always a hair away from getting lost anyways, because slicers have never understood how to properly save a configuration file, so the absolute LAST thing I want is a random object from the internet changing all my settings.

I'm not a normie, and I don't do normie stuff, so there's no reason why an object would install a new printer, select a filament I don't use, change my default filament parameters, and change my nozzle size. ZERO REASON FOR A WIDGET TO DO THIS. Yet this is what happens if I open a 3mf file.

Slicers need to wear a condom with these kinds of files, to keep the ghanasyphaherpalaids away.

ericvenneker commented 1 year ago

@allanonmage 2.6.0 supports this. This issue is used to discus the issues surrounding the old (pre 2.6) method for 3mf files. Version 2.6.0 asks you what you want! image

My personal preference is also to just import the objects and ignore all settings. I most likely do not have the printer or filament that the original designer used.

There is no need to re-open this issue as it is already resolved with this option dialog which you will get after you open a 3mf file. If you do not get this dialog anymore then please refer to the comment made by @lukasmatena above you: https://github.com/prusa3d/PrusaSlicer/issues/6377#issuecomment-1663600997

allanonmage commented 1 year ago

Sweet! Glad to see it got implemented. Guess it's time for me to upgrade the software.