mirror of
https://github.com/Ultimaker/Cura.git
synced 2025-07-12 17:27:51 -06:00
If buildplate has errors, slicing is not possible
CURA-2234
This commit is contained in:
parent
35168ddd5a
commit
9a84deb14e
2 changed files with 11 additions and 2 deletions
|
@ -85,6 +85,8 @@ class BuildVolume(SceneNode):
|
||||||
ExtruderManager.getInstance().activeExtruderChanged.connect(self._onActiveExtruderStackChanged)
|
ExtruderManager.getInstance().activeExtruderChanged.connect(self._onActiveExtruderStackChanged)
|
||||||
self._onActiveExtruderStackChanged()
|
self._onActiveExtruderStackChanged()
|
||||||
|
|
||||||
|
self._has_errors = False
|
||||||
|
|
||||||
def setWidth(self, width):
|
def setWidth(self, width):
|
||||||
if width: self._width = width
|
if width: self._width = width
|
||||||
|
|
||||||
|
@ -316,10 +318,13 @@ class BuildVolume(SceneNode):
|
||||||
if rebuild_me:
|
if rebuild_me:
|
||||||
self.rebuild()
|
self.rebuild()
|
||||||
|
|
||||||
|
def hasErrors(self):
|
||||||
|
return self._has_errors
|
||||||
|
|
||||||
def _updateDisallowedAreas(self):
|
def _updateDisallowedAreas(self):
|
||||||
if not self._global_container_stack:
|
if not self._global_container_stack:
|
||||||
return
|
return
|
||||||
|
self._has_errors = False # Reset.
|
||||||
disallowed_areas = copy.deepcopy(
|
disallowed_areas = copy.deepcopy(
|
||||||
self._global_container_stack.getProperty("machine_disallowed_areas", "value"))
|
self._global_container_stack.getProperty("machine_disallowed_areas", "value"))
|
||||||
areas = []
|
areas = []
|
||||||
|
@ -424,7 +429,7 @@ class BuildVolume(SceneNode):
|
||||||
if not collision:
|
if not collision:
|
||||||
areas.append(self._prime_tower_area)
|
areas.append(self._prime_tower_area)
|
||||||
self._prime_tower_area = None
|
self._prime_tower_area = None
|
||||||
|
self._has_errors = collision
|
||||||
self._disallowed_areas = areas
|
self._disallowed_areas = areas
|
||||||
|
|
||||||
## Convenience function to calculate the size of the bed adhesion in directions x, y.
|
## Convenience function to calculate the size of the bed adhesion in directions x, y.
|
||||||
|
|
|
@ -78,6 +78,10 @@ class StartSliceJob(Job):
|
||||||
self.setResult(StartJobResult.SettingError)
|
self.setResult(StartJobResult.SettingError)
|
||||||
return
|
return
|
||||||
|
|
||||||
|
if Application.getInstance().getBuildVolume().hasErrors():
|
||||||
|
self.setResult(StartJobResult.SettingError)
|
||||||
|
return
|
||||||
|
|
||||||
# Don't slice if there is a per object setting with an error value.
|
# Don't slice if there is a per object setting with an error value.
|
||||||
for node in DepthFirstIterator(self._scene.getRoot()):
|
for node in DepthFirstIterator(self._scene.getRoot()):
|
||||||
if type(node) is not SceneNode or not node.isSelectable():
|
if type(node) is not SceneNode or not node.isSelectable():
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue