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.
This commit is contained in:
Ghostkeeper 2016-11-11 17:00:32 +01:00
parent a8d36c9116
commit edcf7320f0
No known key found for this signature in database
GPG key ID: C5F96EE2BC0F7E75

View file

@ -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