mirror of
https://github.com/Ultimaker/Cura.git
synced 2026-02-14 20:59:28 -07:00
Use setting values for belt layer speed & flow
This commit is contained in:
parent
d6b1aff112
commit
dfa9bd38f0
1 changed files with 35 additions and 16 deletions
|
|
@ -263,23 +263,36 @@ class StartSliceJob(Job):
|
|||
|
||||
if gantry_angle: # not 0 or None
|
||||
# Add a modifier mesh to all printable meshes touching the belt
|
||||
|
||||
extruder_stack_index = node.callDecoration("getActiveExtruderPosition")
|
||||
if not extruder_stack_index:
|
||||
extruder_stack_index = 0
|
||||
extruder_stack = ExtruderManager.getInstance().getMachineExtruders(Application.getInstance().getGlobalContainerStack().getId())[extruder_stack_index]
|
||||
wall_line_width = extruder_stack.getProperty("wall_line_width_0", "value")
|
||||
|
||||
belt_layer_mesh_data = {}
|
||||
for group in object_groups:
|
||||
added_meshes = []
|
||||
for object in group:
|
||||
|
||||
is_non_printing_mesh = False
|
||||
per_object_stack = object.callDecoration("getStack")
|
||||
if per_object_stack:
|
||||
is_non_printing_mesh = any(per_object_stack.getProperty(key, "value") for key in NON_PRINTING_MESH_SETTINGS)
|
||||
wall_line_width_0 = per_object_stack.getProperty("wall_line_width_0", "value")
|
||||
|
||||
if not is_non_printing_mesh and not object.getName().startswith("beltLayerModifierMesh"):
|
||||
extruder_stack_index = object.callDecoration("getActiveExtruderPosition")
|
||||
if not extruder_stack_index:
|
||||
extruder_stack_index = 0
|
||||
extruder_stack = ExtruderManager.getInstance().getMachineExtruders(Application.getInstance().getGlobalContainerStack().getId())[int(extruder_stack_index)]
|
||||
|
||||
belt_wall_enabled = extruder_stack.getProperty("blackbelt_belt_wall_enabled", "value")
|
||||
belt_wall_speed = extruder_stack.getProperty("blackbelt_belt_wall_speed", "value")
|
||||
belt_wall_flow = extruder_stack.getProperty("blackbelt_belt_wall_flow", "value")
|
||||
wall_line_width = extruder_stack.getProperty("wall_line_width_0", "value")
|
||||
|
||||
if per_object_stack:
|
||||
belt_wall_enabled = per_object_stack.getProperty("blackbelt_belt_wall_enabled", "value")
|
||||
belt_wall_speed = per_object_stack.getProperty("blackbelt_belt_wall_speed", "value")
|
||||
belt_wall_flow = per_object_stack.getProperty("blackbelt_belt_wall_flow", "value")
|
||||
wall_line_width = per_object_stack.getProperty("wall_line_width_0", "value")
|
||||
|
||||
if not belt_wall_enabled:
|
||||
continue
|
||||
|
||||
aabb = object.getBoundingBox()
|
||||
if aabb.bottom <= 0:
|
||||
height = wall_line_width * math.sin(gantry_angle)
|
||||
|
|
@ -296,7 +309,12 @@ class StartSliceJob(Job):
|
|||
|
||||
new_node = CuraSceneNode(parent = self._scene.getRoot())
|
||||
new_node.setMeshData(mb.build())
|
||||
new_node.setName("beltLayerModifierMesh" + hex(id(new_node)))
|
||||
node_name = "beltLayerModifierMesh" + hex(id(new_node))
|
||||
new_node.setName(node_name)
|
||||
belt_layer_mesh_data[node_name] = {
|
||||
"blackbelt_belt_wall_speed": belt_wall_speed,
|
||||
"blackbelt_belt_wall_flow" : belt_wall_flow
|
||||
}
|
||||
|
||||
# Note: adding a SettingOverrideDecorator here causes a slicing loop
|
||||
added_meshes.append(new_node)
|
||||
|
|
@ -323,7 +341,7 @@ class StartSliceJob(Job):
|
|||
if transform_matrix:
|
||||
verts = transformVertices(verts, transform_matrix)
|
||||
|
||||
is_non_printing_mesh = object.getName().startswith("beltLayerModifierMesh")
|
||||
is_non_printing_mesh = object.getName() in belt_layer_mesh_data
|
||||
per_object_stack = object.callDecoration("getStack")
|
||||
if per_object_stack:
|
||||
is_non_printing_mesh = any(per_object_stack.getProperty(key, "value") for key in NON_PRINTING_MESH_SETTINGS)
|
||||
|
|
@ -348,14 +366,15 @@ class StartSliceJob(Job):
|
|||
|
||||
obj.vertices = flat_verts
|
||||
|
||||
if object.getName().startswith("beltLayerModifierMesh"):
|
||||
if object.getName() in belt_layer_mesh_data:
|
||||
data = belt_layer_mesh_data[object.getName()]
|
||||
for (key, value) in {
|
||||
"cutting_mesh": "True",
|
||||
"infill_line_distance": 0,
|
||||
"bottom_layers": 0,
|
||||
"top_layers": 0,
|
||||
"speed_wall_0": 10,
|
||||
"speed_wall_x": 10
|
||||
"wall_line_count": 1,
|
||||
"magic_mesh_surface_mode": "normal",
|
||||
"speed_wall_0": data["blackbelt_belt_wall_speed"],
|
||||
"speed_wall_x": data["blackbelt_belt_wall_speed"],
|
||||
"material_flow": data["blackbelt_belt_wall_flow"]
|
||||
}.items():
|
||||
setting = obj.addRepeatedMessage("settings")
|
||||
setting.name = key
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue