From edcf7320f0fea5451d7a931b8af0cbb71ebbfeec Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Fri, 11 Nov 2016 17:00:32 +0100 Subject: [PATCH] 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. --- cura/BuildVolume.py | 21 +++++++++++---------- 1 file changed, 11 insertions(+), 10 deletions(-) diff --git a/cura/BuildVolume.py b/cura/BuildVolume.py index 5c4dcaa1d9..0080ecfd81 100644 --- a/cura/BuildVolume.py +++ b/cura/BuildVolume.py @@ -420,17 +420,18 @@ class BuildVolume(SceneNode): # Add prime tower location as disallowed area. prime_tower_collision = False prime_tower_areas = self._computeDisallowedAreasPrinted(used_extruders) - for prime_tower_area in prime_tower_areas: - for area in result_areas: - if prime_tower_area.intersectsPolygon(area) is not None: - prime_tower_collision = True + for extruder_id in prime_tower_areas: + for prime_tower_area in prime_tower_areas[extruder_id]: + for area in result_areas[extruder_id]: + if prime_tower_area.intersectsPolygon(area) is not None: + prime_tower_collision = True + break + if prime_tower_collision: #Already found a collision. break - if prime_tower_collision: #Already found a collision. - break - if not prime_tower_collision: - result_areas.extend(prime_tower_areas) - else: - self._error_areas.extend(prime_tower_areas) + if not prime_tower_collision: + result_areas[extruder_id].extend(prime_tower_areas) + else: + self._error_areas.extend(prime_tower_areas) self._has_errors = len(self._error_areas) > 0 self._disallowed_areas = result_areas