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.
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.
These clips were offset in the measurements because of the problem with the right nozzle not lifting high enough. This undoes that change.
Contributes to issue CURA-2625.
It turns out that the right nozzle, if lifted, can still hit the clips in very rare cases. But the left nozzle, if the right nozzle is down, will not hit the clips. So the right clips are now part of the static areas just like the switching bay and camera, but the left clips are not.
Contributes to issue CURA-2625.
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...
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.
The idea is that these are now computed through combining the disallowed areas of the two extruders (though that doesn't quite work yet).
Contributes to issue CURA-2625.
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.
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.
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.
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.