mirror of
https://git.mirrors.martin98.com/https://github.com/Ultimaker/Cura
synced 2025-08-11 17:59:00 +08:00
Schedule model check for later if a machine change has not done yet
CURA-5239
This commit is contained in:
parent
e5d795cc0b
commit
c381f3707b
@ -49,6 +49,13 @@ class ModelChecker(QObject, Extension):
|
|||||||
warning_size_xy = 150 #The horizontal size of a model that would be too large when dealing with shrinking materials.
|
warning_size_xy = 150 #The horizontal size of a model that would be too large when dealing with shrinking materials.
|
||||||
warning_size_z = 100 #The vertical size of a model that would be too large when dealing with shrinking materials.
|
warning_size_z = 100 #The vertical size of a model that would be too large when dealing with shrinking materials.
|
||||||
|
|
||||||
|
# This function can be triggered in the middle of a machine change, so do not proceed if the machine change
|
||||||
|
# has not done yet.
|
||||||
|
global_container_stack = Application.getInstance().getGlobalContainerStack()
|
||||||
|
if global_container_stack is None:
|
||||||
|
Application.getInstance().callLater(lambda: self.onChanged.emit())
|
||||||
|
return False
|
||||||
|
|
||||||
material_shrinkage = self._getMaterialShrinkage()
|
material_shrinkage = self._getMaterialShrinkage()
|
||||||
|
|
||||||
warning_nodes = []
|
warning_nodes = []
|
||||||
@ -56,6 +63,13 @@ class ModelChecker(QObject, Extension):
|
|||||||
# Check node material shrinkage and bounding box size
|
# Check node material shrinkage and bounding box size
|
||||||
for node in self.sliceableNodes():
|
for node in self.sliceableNodes():
|
||||||
node_extruder_position = node.callDecoration("getActiveExtruderPosition")
|
node_extruder_position = node.callDecoration("getActiveExtruderPosition")
|
||||||
|
|
||||||
|
# This function can be triggered in the middle of a machine change, so do not proceed if the machine change
|
||||||
|
# has not done yet.
|
||||||
|
if str(node_extruder_position) not in global_container_stack.extruders:
|
||||||
|
Application.getInstance().callLater(lambda: self.onChanged.emit())
|
||||||
|
return False
|
||||||
|
|
||||||
if material_shrinkage[node_extruder_position] > shrinkage_threshold:
|
if material_shrinkage[node_extruder_position] > shrinkage_threshold:
|
||||||
bbox = node.getBoundingBox()
|
bbox = node.getBoundingBox()
|
||||||
if bbox.width >= warning_size_xy or bbox.depth >= warning_size_xy or bbox.height >= warning_size_z:
|
if bbox.width >= warning_size_xy or bbox.depth >= warning_size_xy or bbox.height >= warning_size_z:
|
||||||
|
Loading…
x
Reference in New Issue
Block a user