Update build volume (including prime tower visualization) after quality change. CURA-2274 and CURA-2232

This commit is contained in:
Jack Ha 2016-09-26 11:26:03 +02:00
parent 4547cfe504
commit 1cc5d699c4

View file

@ -81,8 +81,8 @@ class BuildVolume(SceneNode):
self._platform = Platform(self) self._platform = Platform(self)
self._global_container_stack = None self._global_container_stack = None
Application.getInstance().globalContainerStackChanged.connect(self._onGlobalContainerStackChanged) Application.getInstance().globalContainerStackChanged.connect(self._onStackChanged)
self._onGlobalContainerStackChanged() self._onStackChanged()
self._has_errors = False self._has_errors = False
Application.getInstance().getController().getScene().sceneChanged.connect(self._onSceneChanged) Application.getInstance().getController().getScene().sceneChanged.connect(self._onSceneChanged)
@ -100,6 +100,9 @@ class BuildVolume(SceneNode):
" \"Print Sequence\" setting to prevent the gantry from colliding" " \"Print Sequence\" setting to prevent the gantry from colliding"
" with printed models.")) " with printed models."))
# Must be after setting _build_volume_message, apparently that is used in getMachineManager.
Application.getInstance().getMachineManager().activeQualityChanged.connect(self._onStackChanged)
def _onSceneChanged(self, source): def _onSceneChanged(self, source):
self._change_timer.start() self._change_timer.start()
@ -277,7 +280,8 @@ class BuildVolume(SceneNode):
self.setPosition(Vector(0, -self._raft_thickness, 0), SceneNode.TransformSpace.World) self.setPosition(Vector(0, -self._raft_thickness, 0), SceneNode.TransformSpace.World)
self.raftThicknessChanged.emit() self.raftThicknessChanged.emit()
def _onGlobalContainerStackChanged(self): ## Update the build volume visualization
def _onStackChanged(self):
if self._global_container_stack: if self._global_container_stack:
self._global_container_stack.propertyChanged.disconnect(self._onSettingPropertyChanged) self._global_container_stack.propertyChanged.disconnect(self._onSettingPropertyChanged)
extruders = ExtruderManager.getInstance().getMachineExtruders(self._global_container_stack.getId()) extruders = ExtruderManager.getInstance().getMachineExtruders(self._global_container_stack.getId())
@ -354,7 +358,8 @@ class BuildVolume(SceneNode):
machine_depth = self._global_container_stack.getProperty("machine_depth", "value") machine_depth = self._global_container_stack.getProperty("machine_depth", "value")
self._prime_tower_area = None self._prime_tower_area = None
# Add prime tower location as disallowed area. # Add prime tower location as disallowed area.
if self._global_container_stack.getProperty("prime_tower_enable", "value") == True: # if self._global_container_stack.getProperty("prime_tower_enable", "value") == True:
if ExtruderManager.getInstance().getResolveOrValue("prime_tower_enable") == True:
prime_tower_size = self._global_container_stack.getProperty("prime_tower_size", "value") prime_tower_size = self._global_container_stack.getProperty("prime_tower_size", "value")
prime_tower_x = self._global_container_stack.getProperty("prime_tower_position_x", "value") - machine_width / 2 prime_tower_x = self._global_container_stack.getProperty("prime_tower_position_x", "value") - machine_width / 2
prime_tower_y = - self._global_container_stack.getProperty("prime_tower_position_y", "value") + machine_depth / 2 prime_tower_y = - self._global_container_stack.getProperty("prime_tower_position_y", "value") + machine_depth / 2