Merge remote-tracking branch 'origin/main' into CURA-10475_engineplugin

This commit is contained in:
jellespijker 2023-08-17 00:16:32 +02:00
commit 023f2f6e0f
15 changed files with 93 additions and 44 deletions

View File

@ -18,8 +18,8 @@ url: "https://ultimaker.com/software/ultimaker-cura"
repository-code: "https://github.com/Ultimaker/Cura" repository-code: "https://github.com/Ultimaker/Cura"
license: LGPL-3.0 license: LGPL-3.0
license-url: "https://github.com/Ultimaker/Cura/blob/main/LICENSE" license-url: "https://github.com/Ultimaker/Cura/blob/main/LICENSE"
version: 5.2.1 version: 5.4.0
date-released: "2022-10-19" date-released: "2023-07-04"
keywords: keywords:
- Ultimaker - Ultimaker
- Cura - Cura

1
FUNDING.yml Normal file
View File

@ -0,0 +1 @@
github: [ultimaker]

View File

@ -497,6 +497,36 @@ class CuraApplication(QtApplication):
def startSplashWindowPhase(self) -> None: def startSplashWindowPhase(self) -> None:
"""Runs preparations that needs to be done before the starting process.""" """Runs preparations that needs to be done before the starting process."""
self.setRequiredPlugins([
# Misc.:
"ConsoleLogger", # You want to be able to read the log if something goes wrong.
"CuraEngineBackend", # Cura is useless without this one since you can't slice.
"FileLogger", # You want to be able to read the log if something goes wrong.
"XmlMaterialProfile", # Cura crashes without this one.
"Marketplace",
# This contains the interface to enable/disable plug-ins, so if you disable it you can't enable it back.
"PrepareStage", # Cura is useless without this one since you can't load models.
"PreviewStage", # This shows the list of the plugin views that are installed in Cura.
"MonitorStage", # Major part of Cura's functionality.
"LocalFileOutputDevice", # Major part of Cura's functionality.
"LocalContainerProvider", # Cura is useless without any profiles or setting definitions.
# Views:
"SimpleView", # Dependency of SolidView.
"SolidView", # Displays models. Cura is useless without it.
# Readers & Writers:
"GCodeWriter", # Cura is useless if it can't write its output.
"STLReader", # Most common model format, so disabling this makes Cura 90% useless.
"3MFWriter", # Required for writing project files.
# Tools:
"CameraTool", # Needed to see the scene. Cura is useless without it.
"SelectionTool", # Dependency of the rest of the tools.
"TranslateTool", # You'll need this for almost every print.
])
# Plugins need to be set here, since in the super the check is done if they are actually loaded.
super().startSplashWindowPhase() super().startSplashWindowPhase()
if not self.getIsHeadLess(): if not self.getIsHeadLess():
@ -505,33 +535,7 @@ class CuraApplication(QtApplication):
except FileNotFoundError: except FileNotFoundError:
Logger.log("w", "Unable to find the window icon.") Logger.log("w", "Unable to find the window icon.")
self.setRequiredPlugins([
# Misc.:
"ConsoleLogger", #You want to be able to read the log if something goes wrong.
"CuraEngineBackend", #Cura is useless without this one since you can't slice.
"FileLogger", #You want to be able to read the log if something goes wrong.
"XmlMaterialProfile", #Cura crashes without this one.
"Marketplace", #This contains the interface to enable/disable plug-ins, so if you disable it you can't enable it back.
"PrepareStage", #Cura is useless without this one since you can't load models.
"PreviewStage", #This shows the list of the plugin views that are installed in Cura.
"MonitorStage", #Major part of Cura's functionality.
"LocalFileOutputDevice", #Major part of Cura's functionality.
"LocalContainerProvider", #Cura is useless without any profiles or setting definitions.
# Views:
"SimpleView", #Dependency of SolidView.
"SolidView", #Displays models. Cura is useless without it.
# Readers & Writers:
"GCodeWriter", #Cura is useless if it can't write its output.
"STLReader", #Most common model format, so disabling this makes Cura 90% useless.
"3MFWriter", #Required for writing project files.
# Tools:
"CameraTool", #Needed to see the scene. Cura is useless without it.
"SelectionTool", #Dependency of the rest of the tools.
"TranslateTool", #You'll need this for almost every print.
])
self._i18n_catalog = i18nCatalog("cura") self._i18n_catalog = i18nCatalog("cura")
self._update_platform_activity_timer = QTimer() self._update_platform_activity_timer = QTimer()

View File

@ -1,5 +1,5 @@
# Copyright (c) 2018 Jaime van Kessel, Ultimaker B.V. # Copyright (c) 2018 Jaime van Kessel, Ultimaker B.V.
# The PostProcessingPlugin is released under the terms of the AGPLv3 or higher. # The PostProcessingPlugin is released under the terms of the LGPLv3 or higher.
import configparser # The script lists are stored in metadata as serialised config files. import configparser # The script lists are stored in metadata as serialised config files.
import importlib.util import importlib.util

View File

@ -1,5 +1,5 @@
// Copyright (c) 2022 Jaime van Kessel, Ultimaker B.V. // Copyright (c) 2022 Jaime van Kessel, Ultimaker B.V.
// The PostProcessingPlugin is released under the terms of the AGPLv3 or higher. // The PostProcessingPlugin is released under the terms of the LGPLv3 or higher.
import QtQuick 2.2 import QtQuick 2.2
import QtQuick.Controls 2.15 import QtQuick.Controls 2.15

View File

@ -1,6 +1,6 @@
# Copyright (c) 2015 Jaime van Kessel # Copyright (c) 2015 Jaime van Kessel
# Copyright (c) 2018 Ultimaker B.V. # Copyright (c) 2018 Ultimaker B.V.
# The PostProcessingPlugin is released under the terms of the AGPLv3 or higher. # The PostProcessingPlugin is released under the terms of the LGPLv3 or higher.
from typing import Optional, Any, Dict, TYPE_CHECKING, List from typing import Optional, Any, Dict, TYPE_CHECKING, List
from UM.Signal import Signal, signalemitter from UM.Signal import Signal, signalemitter

View File

@ -1,7 +1,7 @@
# ChangeAtZ script - Change printing parameters at a given height # ChangeAtZ script - Change printing parameters at a given height
# This script is the successor of the TweakAtZ plugin for legacy Cura. # This script is the successor of the TweakAtZ plugin for legacy Cura.
# It contains code from the TweakAtZ plugin V1.0-V4.x and from the ExampleScript by Jaime van Kessel, Ultimaker B.V. # It contains code from the TweakAtZ plugin V1.0-V4.x and from the ExampleScript by Jaime van Kessel, Ultimaker B.V.
# It runs with the PostProcessingPlugin which is released under the terms of the AGPLv3 or higher. # It runs with the PostProcessingPlugin which is released under the terms of the LGPLv3 or higher.
# This script is licensed under the Creative Commons - Attribution - Share Alike (CC BY-SA) terms # This script is licensed under the Creative Commons - Attribution - Share Alike (CC BY-SA) terms
# Authors of the ChangeAtZ plugin / script: # Authors of the ChangeAtZ plugin / script:

View File

@ -1,6 +1,6 @@
# ColorMix script - 2-1 extruder color mix and blending # ColorMix script - 2-1 extruder color mix and blending
# This script is specific for the Geeetech A10M dual extruder but should work with other Marlin printers. # This script is specific for the Geeetech A10M dual extruder but should work with other Marlin printers.
# It runs with the PostProcessingPlugin which is released under the terms of the AGPLv3 or higher. # It runs with the PostProcessingPlugin which is released under the terms of the LGPLv3 or higher.
# This script is licensed under the Creative Commons - Attribution - Share Alike (CC BY-SA) terms # This script is licensed under the Creative Commons - Attribution - Share Alike (CC BY-SA) terms
#Authors of the 2-1 ColorMix plug-in / script: #Authors of the 2-1 ColorMix plug-in / script:

View File

@ -1,5 +1,5 @@
# Copyright (c) 2023 Ultimaker B.V. # Copyright (c) 2023 Ultimaker B.V.
# The PostProcessingPlugin is released under the terms of the AGPLv3 or higher. # The PostProcessingPlugin is released under the terms of the LGPLv3 or higher.
# Modification 06.09.2020 # Modification 06.09.2020
# add checkbox, now you can choose and use configuration from the firmware itself. # add checkbox, now you can choose and use configuration from the firmware itself.

View File

@ -1,5 +1,5 @@
# Copyright (c) 2023 UltiMaker B.V. # Copyright (c) 2023 UltiMaker B.V.
# The PostProcessingPlugin is released under the terms of the AGPLv3 or higher. # The PostProcessingPlugin is released under the terms of the LGPLv3 or higher.
from ..Script import Script from ..Script import Script

View File

@ -1,5 +1,5 @@
# Copyright (c) 2017 Ghostkeeper # Copyright (c) 2017 Ghostkeeper
# The PostProcessingPlugin is released under the terms of the AGPLv3 or higher. # The PostProcessingPlugin is released under the terms of the LGPLv3 or higher.
import re #To perform the search and replace. import re #To perform the search and replace.

View File

@ -1,4 +1,4 @@
# This PostProcessingPlugin script is released under the terms of the AGPLv3 or higher. # This PostProcessingPlugin script is released under the terms of the LGPLv3 or higher.
""" """
Copyright (c) 2017 Christophe Baribaud 2017 Copyright (c) 2017 Christophe Baribaud 2017
Python implementation of https://github.com/electrocbd/post_stretch Python implementation of https://github.com/electrocbd/post_stretch

View File

@ -69,7 +69,7 @@
"material_print_temperature_layer_0": { "value": "210 if material_print_temperature < 210 else material_print_temperature" }, "material_print_temperature_layer_0": { "value": "210 if material_print_temperature < 210 else material_print_temperature" },
"min_infill_area": { "value": "5" }, "min_infill_area": { "value": "5" },
"minimum_interface_area": { "default_value": 10 }, "minimum_interface_area": { "default_value": 10 },
"minimum_support_area": { "default_value": 3 }, "minimum_support_area": { "value": "3 if support_structure == 'normal' else 0" },
"optimize_wall_printing_order": { "default_value": true }, "optimize_wall_printing_order": { "default_value": true },
"prime_tower_brim_enable": { "default_value": true }, "prime_tower_brim_enable": { "default_value": true },
"prime_tower_min_volume": { "value": "(layer_height) * (prime_tower_size / 2)**2 * 3 * 0.5 " }, "prime_tower_min_volume": { "value": "(layer_height) * (prime_tower_size / 2)**2 * 3 * 0.5 " },

View File

@ -1665,16 +1665,14 @@
{ {
"label": "Small Top/Bottom Width", "label": "Small Top/Bottom Width",
"description": "Small top/bottom regions are filled with walls instead of the default top/bottom pattern. This helps to avoids jerky motions.", "description": "Small top/bottom regions are filled with walls instead of the default top/bottom pattern. This helps to avoids jerky motions.",
"value": "0", "value": "skin_line_width * 2",
"default_value": 0, "default_value": 1,
"minimum_value": "0", "minimum_value": "0",
"maximum_value_warning": "skin_line_width * 10",
"type": "float", "type": "float",
"enabled": false, "enabled": "(top_layers > 0 or bottom_layers > 0) and top_bottom_pattern != 'concentric'",
"limit_to_extruder": "top_bottom_extruder_nr", "limit_to_extruder": "top_bottom_extruder_nr",
"settable_per_mesh": true, "settable_per_mesh": true,
"unit": "mm", "unit": "mm"
"comment": "Disabled for 5.4.x, as we're worried about micro-segments in the infill. Also disabled in the engine, so forcing this > 0 will not do anything at the moment."
}, },
"skin_no_small_gaps_heuristic": "skin_no_small_gaps_heuristic":
{ {
@ -6805,6 +6803,48 @@
"minimum_value_warning": "500", "minimum_value_warning": "500",
"maximum_value_warning": "100000", "maximum_value_warning": "100000",
"settable_per_mesh": true "settable_per_mesh": true
},
"meshfix_fluid_motion_enabled":
{
"label": "Enable Fluid Motion",
"description": "When enabled tool paths are corrected for printers with smooth motion planners. Small movements that deviate from the general tool path direction are smoothed to improve fluid motions.",
"type": "bool",
"default_value": true
},
"meshfix_fluid_motion_shift_distance":
{
"label": "Fluid Motion Shift Distance",
"description": "Distance points are shifted to smooth the path",
"enabled": "meshfix_fluid_motion_enabled",
"type": "float",
"unit": "mm",
"default_value": 0.1,
"minimum_value": "0.01",
"maximum_value": "1"
},
"meshfix_fluid_motion_small_distance":
{
"label": "Fluid Motion Small Distance",
"description": "Distance points are shifted to smooth the path",
"enabled": "meshfix_fluid_motion_enabled",
"unit": "mm",
"type": "float",
"default_value": 0.01,
"minimum_value": "0.01",
"maximum_value": "0.1"
},
"meshfix_fluid_motion_angle":
{
"label": "Fluid Motion Angle",
"description": "If a toolpath-segment deviates more than this angle from the general motion it is smoothed.",
"enabled": "meshfix_fluid_motion_enabled",
"type": "float",
"unit": "\u00b0",
"default_value": 15,
"maximum_value": "90",
"minimum_value": "0",
"minimum_value_warning": "1",
"maximum_value_warning": "35"
} }
} }
}, },

View File

@ -365,6 +365,10 @@ multiple_mesh_overlap
carve_multiple_volumes carve_multiple_volumes
alternate_carve_order alternate_carve_order
remove_empty_first_layers remove_empty_first_layers
meshfix_fluid_motion_enabled
meshfix_fluid_motion_shift_distance
meshfix_fluid_motion_small_distance
meshfix_fluid_motion_angle
[blackmagic] [blackmagic]
print_sequence print_sequence