Commit graph

1750 commits

Author SHA1 Message Date
Jaime van Kessel
9539774c0b Merge branch 'master' of github.com:Ultimaker/Cura into rework_file_handler 2016-11-17 10:27:28 +01:00
Ghostkeeper
41825231ad
Fix check for if nozzle offset exists
Because an offset of 0 results in False as well.

Contributes to issue CURA-2625.
2016-11-17 09:54:00 +01:00
Jaime van Kessel
042141413a Fixed mergeSelected
My previous fix was wrong; It only worked on what I wanted to fix (and broke the normal behavior). The current fix should fix both issues (merging works & merging groups works)

CURA-2932
2016-11-16 17:22:06 +01:00
Jaime van Kessel
053f0ca031 Replaced hack for setting extruders with more robust setter
CURA-1263
2016-11-16 14:54:48 +01:00
Jack Ha
a68d96fb60 Per model settings panel is now closed when the tool gets disabled. CURA-2287 2016-11-16 09:42:04 +01:00
Ghostkeeper
35a01435d5
Also rebuild when mesh extruder changes
I do not want to add the rebuild() call to the update function itself since there may be other changes to the build volume before we should rebuild (such as raft).

Contributes to issue CURA-2625.
2016-11-15 13:10:58 +01:00
Ghostkeeper
2492b03c4f
Update disallowed area when object's extruder is changed
This calls _updateDisallowedAreas() but not rebuild(), so the change is not visible at this moment.

Contributes to issue CURA-2625.
2016-11-15 13:10:58 +01:00
Ghostkeeper
60c8933906
Remove debug print
Oops.

Contributes to issue CURA-2625.
2016-11-15 13:10:58 +01:00
Ghostkeeper
f0766cbaf3
Update build volume when per-object settings change
Requires some multi-levelled trickery to get the event listeners working. This also assumes that the per-object stack decorator is not deleted at any point unless the mesh is deleted (which is currently a correct assumption). If that ever changes though, the harm is just that the update function is still listening on the deleted decorator's stack.

Contributes to issue CURA-2625.
2016-11-15 13:10:57 +01:00
Ghostkeeper
747ade2382
Remove now-useless variable
I just realised that there were two if statements below each other with the same condition.

Contributes to issue CURA-2625.
2016-11-15 13:10:57 +01:00
Ghostkeeper
9be02fb31f
Recalculate disallowed borders when adding or removing objects
Because the new object may use an extruder that wasn't used so far, and if you remove an object it may remove the need for a certain extruder.

Contributes to issue CURA-2625.
2016-11-15 13:10:57 +01:00
Jack Ha
6bb82eeefe Fix problem registering Actions.qml which resulted in empty menu items. 2016-11-15 11:42:08 +01:00
Jaime van Kessel
dffb54d901 Removed abundant whitespace 2016-11-14 17:54:38 +01:00
Ghostkeeper
47bb8f9601
Compute disallowed borders with all extruders
It's a bit counter-intuitive, so let me explain. The total build volume is defined as the rectangle around the union of the areas that all extruders can reach. The nozzle offset for the left extruder though is 0,0, so what should the border on the right side be? It should be 18 since there is a nozzle to the right of the left nozzle which has a relative x-offset of 18mm. Therefore we need to compute the relative offsets with each of the other nozzles and create sort of a bounding box around it, and the distance to the edge of that bounding box is the unreachable border on each of the sides.

Contributes to issue CURA-2625.
2016-11-14 17:17:55 +01:00
Ghostkeeper
f0d92873a3
Add nozzle disallowed areas
These disallowed areas are only at nozzle-height, not at head-height. They therefore won't move along with the nozzle offset.

Contributes to issue CURA-2625.
2016-11-14 17:13:24 +01:00
Jaime van Kessel
8ae0cfd848 Loading workspace now activates the machine and notifies everyone that it was changed
CURA-1263
2016-11-14 13:30:28 +01:00
Tim Kuipers
0c550859dd fix: don't register adhesion_extruder_nr as used if adhesion_type == none (CURA-759)
Also the old line obtained brim_line_count from the global stack, while it is settable_per_extruder!
Also we now assume selecting a brim means you want to print it.
I don't think having a brim line count of zero meant that you wouldnt get a brim; the minimal brim length also plays a role...
2016-11-14 12:39:41 +01:00
Tim Kuipers
995705f82b fix: don't expand disallowed areas when using none platform adhesion (CURA-759) 2016-11-14 12:36:21 +01:00
Ghostkeeper
519f6e58d2
Remove debug print
This is why it's wise to do a git diff --cached before you commit.

Contributes to issue CURA-2625.
2016-11-14 11:40:25 +01:00
Ghostkeeper
18b2834091
half_machine_width should be halved
Shoot me before I do any further damage, please.

Contributes to issue CURA-2625.
2016-11-14 11:38:47 +01:00
Ghostkeeper
98089e702c
Also offset inner corners of the Y-borders
These should coincide with the inner corners of the X-borders.

Contributes to issue CURA-2625.
2016-11-14 11:28:32 +01:00
Ghostkeeper
5ddc1d9d71
Fix offsetting polygon in single extrusion
In single extrusion, the machine_nozzle_offset_x and machine_nozzle_offset_y were not defined in the used extruder stacks, because the used extruder stack is the global stack.

Contributes to issue CURA-2625.
2016-11-14 10:47:38 +01:00
Ghostkeeper
48134619eb
Fix checking if we're single extrusion
We are single extrusion if the extruder count is less than or equal to 1, like in other places throughout Cura.

Contributes to issue CURA-2625.
2016-11-14 10:31:11 +01:00
Ghostkeeper
8d43f1c5f7
Take first layer extruder into account
Forgot about that one earlier.

Contributes to issue CURA-2625.
2016-11-11 17:18:15 +01:00
Ghostkeeper
a72d47c2a4
Fix adding prime tower locations to disallowed areas
Otherwise just a string gets added, which gives an error when the disallowed areas are being built as meshes. The front-end runs again, though the disallowed areas seem to be wrong now.

Contributes to issue CURA-2625.
2016-11-11 17:06:47 +01:00
Ghostkeeper
57f88ea048
Mush disallowed areas of all extruders together
The final result needs to be just a list.

Contributes to issue CURA-2625.
2016-11-11 17:02:01 +01:00
Ghostkeeper
edcf7320f0
Interpret prime tower areas per extruder
The function gives results per extruder now, so we should interpret that instead of crashing.

Contributes to issue CURA-2625.
2016-11-11 17:00:32 +01:00
Ghostkeeper
a8d36c9116
Fix iteration over prime-disallowed areas
Oops. prime_disallowed_areas is a dictionary per extruder.

Contributes to issue CURA-2625.
2016-11-11 16:58:25 +01:00
Ghostkeeper
1c445a1512
Move computing disallowed areas to separate function
The results are checked for intersection in the main update function, and then it crashes because the main function doesn't expect per-extruder disallowed areas yet from the rest.

Contributes to issue CURA-2625.
2016-11-11 16:55:07 +01:00
Ghostkeeper
4b02171db6
Compute disallowed areas per-extruder
This computes the disallowed areas of the machine, the disallowed border and the prime tower per extruder. The prime locations are not yet calculated per extruder, but I'd like to extract it to a function before I try that.

Warning: Cura will not run at this stage. Please await the next commits.

Contributes to issue CURA-2625.
2016-11-11 16:26:58 +01:00
Ghostkeeper
3571ed2d7a
Expand disallowed border beyond build volume
This way we can offset it with the nozzle offset and it would still cover all the way to the edge. The disallowed areas are clipped to the build volume anyway.

Contributes to issue CURA-2625.
2016-11-11 15:44:53 +01:00
Ghostkeeper
ec057c72a6
Compute disallowed border size only once
We pass it on through a parameter instead of computing it again in the function.

Contributes to issue CURA-2625.
2016-11-11 15:16:43 +01:00
Ghostkeeper
bcd4dd3aeb
Fix applying skirt radius to prime locations
This makes the prime locations equal to what it was before.

Contributes to issue CURA-2625.
2016-11-11 15:14:15 +01:00
Ghostkeeper
45db315f77
Fix adding prime locations to final disallowed areas
They were added to several intermediary variables, but not to the final result.

Contributes to issue CURA-2625.
2016-11-11 15:10:39 +01:00
Ghostkeeper
ccccf62bf7
Repair showing build volume
We needed to apply the Minkowski hull on the polygon or it would be disjunct and wouldn't show up in the interface.

Contributes to issue CURA-2625.
2016-11-11 14:18:08 +01:00
Ghostkeeper
41c8371b86
Compute _has_errors only from _error_areas
This way we need fewer intermediary variables. It's also more robust and somewhat more elegant.

Contributes to issue CURA-2625.
2016-11-11 13:09:17 +01:00
Ghostkeeper
cfc9a7b6cf
Move prime tower area generation to separate function
This function is named as if it could later include other printed pieces, but it is meant to only include pieces that have normal bed adhesion, so not the prime locations.

Contributes to issue CURA-2625.
2016-11-11 13:03:34 +01:00
Ghostkeeper
a37ab8f4b1
Use approximated circle for the prime polygons
It's much easier to create, more obvious code, and better approximates the area that we seek to use for our prime location.

Contributes to issue CURA-2625.
2016-11-11 12:46:53 +01:00
Ghostkeeper
3d9eb4f2be
Move prime tower creation code closer to where it's used
The check for collisions is only at the end, and after that it adds the polygon itself. We should keep the code closer together to make it more readable.

Contributes to issue CURA-2625.
2016-11-11 12:01:08 +01:00
Ghostkeeper
42ee87c88f
Rename areas to result_areas
Because we have 'areas', 'disallowed_areas', 'self._disallowed_areas', 'disallowed_polygons', and so on. This should reduce the confusion a bit.

Contributes to issue CURA-2625.
2016-11-11 11:54:50 +01:00
Ghostkeeper
77a6c459d8
Move initialisation of areas closer to where it's used
Makes the code more easy to follow.

Contributes to issue CURA-2625.
2016-11-11 11:53:13 +01:00
Ghostkeeper
b6611b66f8
Remove unused intermediary value
This is not used, unless you take multi-threading into account. In that case though, the actual disallowed areas are only updated at the end of this function, and the _has_errors variable is updated right before then as well, so this way the variable is in an invalid state for a smaller amount of time.

Contributes to issue CURA-2625.
2016-11-11 11:51:32 +01:00
Ghostkeeper
49c5a90d29
Remove unused variable
This one is now moved to the _computeDisallowedAreasStatic function.

Contributes to issue CURA-2625.
2016-11-11 11:48:03 +01:00
Ghostkeeper
1603930c5c
Extract computing static disallowed areas to different function
These disallowed areas will have to move or get duplicated according to which nozzles are used. Eventually we'll want to compute these with their Minkowski additions only when needed (the skirt size changes), not when the used extruders change. This is also part of an effort to make this disallowed area computation a bit better structured. The behaviour should be the same.

Contributes to issue CURA-2625.
2016-11-11 11:41:55 +01:00
Ghostkeeper
14e736d9eb
Add function to find the extruders that are used
These are the extruders that are being used by the scene if it would currently be printed. You can ask the extruder stacks for stuff like the nozzle offset. This way we can determine the disallowed areas per extruder.

Contributes to issue CURA-2625.
2016-11-10 19:31:02 +01:00
fieldOfView
236723fc8d Remove unused required argument on _startCamera and _stopCamera
(they were probably there due to a copy/paste error, see _setJobState)
CURA-2411
2016-11-09 16:20:34 +01:00
Jaime van Kessel
304696c809 OutputDevices now take file_handler into account
CURA-1263
2016-11-09 14:03:57 +01:00
fieldOfView
6752a18435 Add dialog to set number of copies when duplicating models 2016-11-07 14:02:19 +01:00
Tim Kuipers
e51f9ba678 fix: exclude command line settings from being viewed in the frontend (CURA-566) 2016-11-07 11:54:47 +01:00
Jaime van Kessel
e7df64da8b Fixed merging for already grouped objects 2016-11-07 11:19:03 +01:00