mirror of
https://git.mirrors.martin98.com/https://github.com/Ultimaker/Cura
synced 2025-08-13 01:09:00 +08:00
Show scene boundingbox in JobSpecs
This commit is contained in:
parent
6bfed19477
commit
a1123655ff
@ -10,6 +10,7 @@ from UM.Scene.Platform import Platform
|
|||||||
from UM.Math.Vector import Vector
|
from UM.Math.Vector import Vector
|
||||||
from UM.Math.Matrix import Matrix
|
from UM.Math.Matrix import Matrix
|
||||||
from UM.Math.Quaternion import Quaternion
|
from UM.Math.Quaternion import Quaternion
|
||||||
|
from UM.Math.AxisAlignedBox import AxisAlignedBox
|
||||||
from UM.Resources import Resources
|
from UM.Resources import Resources
|
||||||
from UM.Scene.ToolHandle import ToolHandle
|
from UM.Scene.ToolHandle import ToolHandle
|
||||||
from UM.Scene.Iterator.DepthFirstIterator import DepthFirstIterator
|
from UM.Scene.Iterator.DepthFirstIterator import DepthFirstIterator
|
||||||
@ -97,6 +98,7 @@ class CuraApplication(QtApplication):
|
|||||||
self._i18n_catalog = None
|
self._i18n_catalog = None
|
||||||
self._previous_active_tool = None
|
self._previous_active_tool = None
|
||||||
self._platform_activity = False
|
self._platform_activity = False
|
||||||
|
self._scene_boundingbox = AxisAlignedBox()
|
||||||
self._job_name = None
|
self._job_name = None
|
||||||
|
|
||||||
self.getMachineManager().activeMachineInstanceChanged.connect(self._onActiveMachineChanged)
|
self.getMachineManager().activeMachineInstanceChanged.connect(self._onActiveMachineChanged)
|
||||||
@ -240,18 +242,29 @@ class CuraApplication(QtApplication):
|
|||||||
|
|
||||||
requestAddPrinter = pyqtSignal()
|
requestAddPrinter = pyqtSignal()
|
||||||
activityChanged = pyqtSignal()
|
activityChanged = pyqtSignal()
|
||||||
|
sceneBoundingBoxChanged = pyqtSignal()
|
||||||
|
|
||||||
@pyqtProperty(bool, notify = activityChanged)
|
@pyqtProperty(bool, notify = activityChanged)
|
||||||
def getPlatformActivity(self):
|
def getPlatformActivity(self):
|
||||||
return self._platform_activity
|
return self._platform_activity
|
||||||
|
|
||||||
|
@pyqtProperty(str, notify = sceneBoundingBoxChanged)
|
||||||
|
def getSceneBoundingBoxString(self):
|
||||||
|
return self._i18n_catalog.i18nc("@info", "%.1f x %.1f x %.1f mm") % (self._scene_boundingbox.width.item(), self._scene_boundingbox.depth.item(), self._scene_boundingbox.height.item())
|
||||||
|
|
||||||
def updatePlatformActivity(self, node = None):
|
def updatePlatformActivity(self, node = None):
|
||||||
count = 0
|
count = 0
|
||||||
|
scene_boundingbox = AxisAlignedBox()
|
||||||
for node in DepthFirstIterator(self.getController().getScene().getRoot()):
|
for node in DepthFirstIterator(self.getController().getScene().getRoot()):
|
||||||
if type(node) is not SceneNode or not node.getMeshData():
|
if type(node) is not SceneNode or not node.getMeshData():
|
||||||
continue
|
continue
|
||||||
|
|
||||||
count += 1
|
count += 1
|
||||||
|
scene_boundingbox += node.getBoundingBox()
|
||||||
|
|
||||||
|
if repr(self._scene_boundingbox) != repr(scene_boundingbox):
|
||||||
|
self._scene_boundingbox = scene_boundingbox
|
||||||
|
self.sceneBoundingBoxChanged.emit()
|
||||||
|
|
||||||
self._platform_activity = True if count > 0 else False
|
self._platform_activity = True if count > 0 else False
|
||||||
self.activityChanged.emit()
|
self.activityChanged.emit()
|
||||||
|
@ -106,7 +106,7 @@ Rectangle {
|
|||||||
anchors.right: parent.right
|
anchors.right: parent.right
|
||||||
font: UM.Theme.fonts.small
|
font: UM.Theme.fonts.small
|
||||||
color: UM.Theme.colors.text_subtext
|
color: UM.Theme.colors.text_subtext
|
||||||
text: "0.0 x 0.0 x 0.0 mm"
|
text: Printer.getSceneBoundingBoxString
|
||||||
}
|
}
|
||||||
|
|
||||||
Rectangle {
|
Rectangle {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user