Since the prime tower for other extruders is now folded into one instead of alternating the layers, you need to have enough diameter to print all extruders, not just the current extruder.
Fixes one side-issue mentioned in #8148.
In cases where a staging build is created this hardcoded value would cause confusion, since it would always point the user to the production environment.
When importing a profile that doesn't much the current nozzle combination (e.g. importing a 'high'
quality when we have AA0.8 and AA0.4 nozzles), the profile was being accepted and a success message
was shown to the user, but the quality did not show up in the profile list.
This commit fixes that by accepting the quality profile and informing the user that the profile is
not visible due to the current configuration.
CURA-7691
A printer was added in the meantime that had setting_version = 15, which was leading to failing
tests, considering that this PR has changed the setting version to 16.
CURA-7118
These groups were not considered because they are not sliceable. Their children are sliceable, so I could just use a DepthFirstIterator. However their group computes the AABB correctly also, so taking the AABB of the group is more efficient.
Contributes to issue CURA-7118.
The convex hulls for groups are already constructed from the convex hull of the convex hulls of all of their children. Since the children's convex hulls are already scaled, we don't want to scale it again for the group.
Contributes to issue CURA-7118.
This should prevent a crash when saving to a path that the file system doesn't support (because of e.g. disallowed symbols in the file name).
Instead it will now show an error message to the user.
Fixes Sentry issue CURA-157.
This is a bit of defensive coding. If the position is out of bounds for Cura it should now ignore those extruders.
This could be due to broken firmware, or maybe someone MITM-ing the connection and changing it, or perhaps because the printer was changed while the sync was ongoing? Whatever the cause, it now puts a warning in the log about it and doesn't crash any more.
Fixes Sentry issue CURA-156.
As discussed, this is a method to prevent leaking personally identifiable information through crash reports, while still keeping the useful information for the developers on how widely spread the crashes are.
The QML profiler showed me that it was causing a *lot* of issues
when switching between extruders. More than 10% of the time in QML
was spent on just updating ine property in the workspace summary dialog.
There were other properties that were also being updated without there being a point.
Contributes to #8250
In some situations this could cause a slowdown, since halfway through
calculating the values the extruder switch would happen. If this is
split up a bit, it's at least less noticeable
Contributes to #8250
All the settings that are changed get a notification from the settingRelation.
There should be no need to re-fire all of those settings again!
Contributes to #8250
This doesn't actually speed up the process, but it does give some indication
that something is going on while the changes are happening
Contributes to #8250
This comes at some performance cost, sadly. This is necessary because the convex hull of every node may change if the transformation of any other node changes, since that transformation may adjust the total bounding box of the mesh group.
Contributes to issue CURA-7118.
This is either the centre of the bounding box around all printable nodes in the scene, or the centre of the bounding box of the most-ancestral node that is not yet the scene root itself in one-at-a-time mode.
Contributes to issue CURA-7118.
A small positive (>100) value is correct. It needs to compensate by increasing the size, usually. If you need to compensate by making it smaller, that means that the material would expand when cooling, which is very rare.
Contributes to issue CURA-7118.
We have a change now that requires a version upgrade. This triggers all profiles to update for the user, and we must update accordingly in the built-in profiles.
Contributes to issue CURA-7118.
We're changing the unit of one of our settings, so we need to implement a version upgrade to change that for our users in case they changed this setting themselves.
Contributes to issue CURA-7118.
So now if the model is grown due to shrinkage compensation, its collision area will also grow. This prevents objects adjacent to each other from hitting each other.
Contributes to issue CURA-7118.
We'll now actually compensate for the shrinkage. That means that the setting needs to become user-visible. We need to make that experience a bit more user-friendly.
The setting is now also global, with a resolve function. That means that the user can't change this per extruder any more, because the scale factor applied in the engine can only be global. The resolve function means that profiles can still apply a per-extruder value but this value gets resolved with other extruders' values.
Contributes to issue CURA-7118.