Commit graph

7628 commits

Author SHA1 Message Date
Kostas Karmas
eedbcb6a2d Fix z position of objects that end outside the buildplate
When multiplying objects or inserting objects in the scene that do not fit in the buildplate, those
objects would correctly end up outside the buildplate, but their Z position would be aligned at the
absolute Z=0 of the buildplate.

This commit fixes that by compensating in the z-axis, properly moving the object outside the
buildplate in the correct z-position so that it's bottom is aligned with the original object.

CURA-7440
2020-10-09 15:59:50 +02:00
Kostas Karmas
0922f03ca5 Merge branch 'CURA-7440-pynest2d_for_arrange' of https://github.com/Ultimaker/Cura into CURA-7440-pynest2d_for_arrange 2020-10-09 13:52:07 +02:00
Remco Burema
d3ec1d7d28
Cache wasn't valid due to a reference being stored, not a copy.
paer of CURA-7440
2020-10-09 13:39:53 +02:00
Kostas Karmas
8678682d94 Reformat file and remove unused import
CURA-7440
2020-10-08 16:27:36 +02:00
Ghostkeeper
6bfa24686f
Mark disallowed areas as disallowed areas
Also improve the filtering a bit so that it's no longer dependent on the order. Doesn't really matter in this case but it should be more robust.

Contributes to issue CURA-7754.
2020-10-08 11:10:24 +02:00
Jaime van Kessel
a46bf8d6fa
Apply suggestions from code review
CURA-7440

Co-authored-by: Konstantinos Karmas <konskarm@gmail.com>
2020-10-08 09:43:22 +02:00
Kostas Karmas
f25bfd717e Recalculate the number of user settings after setting the quality group
So that the dialog ensures actually knows that there are no changed settings and will not show up.

CURA-7728
2020-10-06 09:55:11 +02:00
Jaime van Kessel
d801f9838a
Fix mypy issues
It doesn't seem to like blanket imports

CURA-7440
2020-10-05 14:52:50 +02:00
Jaime van Kessel
59b9639d87
Don't let arranger place all objects on the same spot if they don't fit
CURA-7440
2020-10-05 14:31:42 +02:00
Jaime van Kessel
a14135be5e
Add some documentation to the arrange nest algorithm
CURA-7440
2020-10-05 14:24:34 +02:00
Jaime van Kessel
9312dc5c07
Add deprecated tag to arranger
CURA-7440
2020-10-05 14:15:49 +02:00
Jaime van Kessel
a1f43e7bcf
Also use the new arranger when multiplying objects 2020-10-05 14:09:50 +02:00
Jaime van Kessel
5823140b21
Always add multiplied nodes to the root.
No idea why it was using the parent of the current node. It's
technically the same, but this is much more explicit

CURA-7440
2020-10-05 13:45:24 +02:00
Jaime van Kessel
30966beed2
Let autoplacement also take the existing nodes into account
CURA-7440
2020-10-05 13:37:57 +02:00
Jaime van Kessel
a34f1a6504
Arrange newly placed models
CURA-7440
2020-10-05 13:14:21 +02:00
Jaime van Kessel
2d084c9e2b
Remove the old arrange from mesh placement on load
For some reaso it was also handling the move up to the buildplate (which it
really shouldn't do)

CURA-7440
2020-10-05 13:08:28 +02:00
Jaime van Kessel
274dc8d06c
Split up arrange
This splits up the finding of new positions with the actual move. This is needed
for when we want to place new nodes on model load.

CURA-7440
2020-10-02 11:21:57 +02:00
Jaime van Kessel
c25351c98a
Remove unused imports
CURA-7440
2020-10-02 10:06:41 +02:00
Jaime van Kessel
8c1985cdb3
Move nest2darrange to it's own function
This makes it a lot easier to re-use it

CURA-7440
2020-10-02 10:06:09 +02:00
Jaime van Kessel
c33c025a6c
Add getters for Width/height/depth to build volume
CURA-7440
2020-10-02 10:04:46 +02:00
Jaime van Kessel
e0e65b91b5
Take disallowed areas into account when arranging
CURA-7440
2020-09-30 10:34:35 +02:00
Jaime van Kessel
73289b2a77
Place objects that we couldn't fit next to the buildplate
CURA-7440
2020-09-28 16:21:47 +02:00
Jaime van Kessel
b0a8a5ccab
Switch out the arranger algorithm for arrange all
CURA-7440
2020-09-28 16:16:47 +02:00
Jaime van Kessel
dd359da1cf
Prevent crash when material is unknown
Fixes CURA-GV
2020-09-16 16:37:09 +02:00
Remco Burema
d1f5c7de05
Merge pull request #8363 from Ultimaker/CURA-7691_Unclear_why_imported_profile_is_not_immediately_visible
CURA-7691: Unclear why imported profile is not immediately visible
2020-09-16 08:28:35 +02:00
Remco Burema
3fcd7d567f
Show warning icon on import non-visible profile.
part of CURA-7691
2020-09-16 08:26:41 +02:00
Evangelos Trantos
f906017835
Add the CURA_DIGITAL_FACTORY_URL variable
This way its value will be imported in the UltimakerCloudConstants.py file and be used throughout the application.
2020-09-14 21:15:32 +02:00
Konstantinos Karmas
36a2535650
Merge pull request #8297 from Ultimaker/CURA-7118_shrinkage_compensation
Shrinkage compensation
2020-09-11 14:22:33 +02:00
Kostas Karmas
0524e8d129 Fix missing quality profile when message says its successful
Make sure to add the container before doing any other checks. Then, if the importing fails, remove
all the profiles related to that quality.

CURA-7691
2020-09-11 11:35:39 +02:00
Kostas Karmas
665496ceff Warn when importing quality profiles that don't match the current configuration
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
2020-09-10 16:58:30 +02:00
Kostas Karmas
85f113a683 Merge branch 'master' into CURA-7118_shrinkage_compensation 2020-09-09 09:46:29 +02:00
Jelle Spijker
0725bdcd64
Merge pull request #8335
Speed up disable extruder
2020-09-09 09:42:36 +02:00
Ghostkeeper
765004cd68
Take node groups into account when computing the centre of the mesh group
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.
2020-09-08 17:54:09 +02:00
Ghostkeeper
d3e5f9ec93
Don't re-scale convex hulls for groups
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.
2020-09-08 17:45:38 +02:00
Ghostkeeper
6e2738a254
Don't update extruders that Cura doesn't have
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.
2020-09-08 12:53:30 +02:00
Ghostkeeper
59669f6bad
Apply bitmask to user scope
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.
2020-09-08 02:00:58 +02:00
Jaime van Kessel
49c401590b
Update bugreport link 2020-09-07 10:47:52 +02:00
Jaime van Kessel
175244fdc8
No longer spam the GUI with hasUserSettingsUpdates
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
2020-09-04 17:23:52 +02:00
Jaime van Kessel
6dbdee8d98
Don't switch away from disabled extruder
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
2020-09-04 16:43:53 +02:00
Jaime van Kessel
c383fe9656
Don't force an update when disabling an extruder
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
2020-09-04 16:39:06 +02:00
Jaime van Kessel
8ecdce3b26
Remove postponeEmit that didn't do anything
The signals it was postponing weren't ever being triggered
2020-09-04 16:38:15 +02:00
Ghostkeeper
8c0e21f0d5
Don't crash if mesh loading fails
Some plug-ins (like the OBJReader) return None then.

Fixes Sentry issue CURA-14P.
2020-09-03 17:52:44 +02:00
Jaime van Kessel
09066f2744
Don't mark children nodes in a group below the buildplate
Fixes #8268
2020-09-02 14:19:38 +02:00
Ghostkeeper
59bf1c10af
Account for the fact that global_stack may be empty
You should not have any models in your scene then though. But oh well. It also fixes the typing.

Contributes to issue CURA-7118.
2020-09-02 03:21:11 +02:00
Ghostkeeper
323be4deff
Fix updating the 2D convex hull
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.
2020-09-02 03:09:41 +02:00
Ghostkeeper
f613a54b79
Compute centre of current mesh group
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.
2020-09-02 02:43:43 +02:00
Ghostkeeper
bc0ac0f2a0
Only scale convex hull if there is a non-1 scaling factor
This will save some processing power for the very common case where there is no scaling factor.

Contributes to issue CURA-7118.
2020-09-02 02:10:19 +02:00
Ghostkeeper
a6707217c7
Get scale factor from global stack
This is the one that's actually used by CuraEngine. If I get it per-object, the material profile overrides it.

Contributes to issue CURA-7118.
2020-09-02 02:08:18 +02:00
Ghostkeeper
a7b2f7de5a
Upgrade setting_version to 16
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.
2020-09-02 01:51:13 +02:00
Ghostkeeper
af03bc8f24
Adjust collision area based on shrinkage compensation ratio
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.
2020-09-02 00:51:58 +02:00