diff --git a/.github/workflows/release-process_release-candidate.yml b/.github/workflows/release-process_release-candidate.yml index d14701d2780..1afb8aad048 100644 --- a/.github/workflows/release-process_release-candidate.yml +++ b/.github/workflows/release-process_release-candidate.yml @@ -9,6 +9,11 @@ on: required: true type: string + publish_release_description: + description: 'Create the GitHub release (if existing, the description will be overridden based on the changelog)' + required: true + type: boolean + jobs: parse-version: name: Parse input version string @@ -153,10 +158,12 @@ jobs: ref: ${{ needs.parse-version.outputs.branch_name }} - name: Extract changelog + if: ${{ inputs.publish_release_description }} run: python ./scripts/extract_changelog.py --version ${{ needs.parse-version.outputs.version_major }}.${{ needs.parse-version.outputs.version_minor }}.${{ needs.parse-version.outputs.version_patch }} --changelog ./resources/texts/change_log.txt > formatted_changelog.txt - name: Create release uses: notpeelz/action-gh-create-release@v5.0.1 + if: ${{ inputs.publish_release_description }} with: target: ${{ needs.create-tags.outputs.main_commit }} tag: ${{ inputs.cura_version }} diff --git a/conandata.yml b/conandata.yml index 3a2f90bbe16..eda0a7c1648 100644 --- a/conandata.yml +++ b/conandata.yml @@ -10,7 +10,7 @@ requirements: - "pynest2d/5.3.0" - "native_cad_plugin/2.0.0" requirements_internal: - - "fdm_materials/(latest)@internal/testing" + - "fdm_materials/5.8.1" - "cura_private_data/(latest)@internal/testing" urls: default: diff --git a/cura/Settings/CuraContainerStack.py b/cura/Settings/CuraContainerStack.py index b5b8a1b7213..ef1c9561afd 100755 --- a/cura/Settings/CuraContainerStack.py +++ b/cura/Settings/CuraContainerStack.py @@ -5,7 +5,7 @@ from PyQt6.QtCore import pyqtProperty, pyqtSignal, QObject from UM.Application import Application -from UM.Decorators import override +from UM.Decorators import CachedMemberFunctions, override from UM.FlameProfiler import pyqtSlot from UM.Logger import Logger from UM.Settings.ContainerStack import ContainerStack, InvalidContainerStackError @@ -237,6 +237,7 @@ def setProperty(self, key: str, property_name: str, property_value: Any, contain :param new_value: The new value to set the property to. """ + CachedMemberFunctions.clearInstanceCache(self) container_index = _ContainerIndexes.UserChanges self._containers[container_index].setProperty(key, property_name, property_value, container, set_from_cache) diff --git a/cura/Settings/ExtruderStack.py b/cura/Settings/ExtruderStack.py index eba41569b79..645abeb0f62 100644 --- a/cura/Settings/ExtruderStack.py +++ b/cura/Settings/ExtruderStack.py @@ -5,7 +5,7 @@ from PyQt6.QtCore import pyqtProperty, pyqtSignal -from UM.Decorators import override +from UM.Decorators import CachedMemberFunctions, override from UM.MimeTypeDatabase import MimeType, MimeTypeDatabase from UM.Settings.ContainerStack import ContainerStack from UM.Settings.ContainerRegistry import ContainerRegistry @@ -86,6 +86,7 @@ def getCompatibleMaterialDiameter(self) -> float: def setCompatibleMaterialDiameter(self, value: float) -> None: old_approximate_diameter = self.getApproximateMaterialDiameter() if self.getCompatibleMaterialDiameter() != value: + CachedMemberFunctions.clearInstanceCache(self) self.definitionChanges.setProperty("material_diameter", "value", value) self.compatibleMaterialDiameterChanged.emit() diff --git a/plugins/XmlMaterialProfile/XmlMaterialProfile.py b/plugins/XmlMaterialProfile/XmlMaterialProfile.py index 13111c1c7a2..eb2bb2a7882 100644 --- a/plugins/XmlMaterialProfile/XmlMaterialProfile.py +++ b/plugins/XmlMaterialProfile/XmlMaterialProfile.py @@ -11,6 +11,7 @@ from UM.PluginRegistry import PluginRegistry from UM.Resources import Resources from UM.Logger import Logger +from UM.Decorators import CachedMemberFunctions import UM.Dictionary from UM.Settings.InstanceContainer import InstanceContainer from UM.Settings.ContainerRegistry import ContainerRegistry @@ -71,6 +72,8 @@ def setMetaDataEntry(self, key, value, apply_to_all = True): Logger.log("w", "Can't change metadata {key} of material {material_id} because it's read-only.".format(key = key, material_id = self.getId())) return + CachedMemberFunctions.clearInstanceCache(self) + # Some metadata such as diameter should also be instantiated to be a setting. Go though all values for the # "properties" field and apply the new values to SettingInstances as well. new_setting_values_dict = {} @@ -480,6 +483,7 @@ def _combineElement(first, second): first.append(element) def clearData(self): + CachedMemberFunctions.clearInstanceCache(self) self._metadata = { "id": self.getId(), "name": "" @@ -519,6 +523,8 @@ def getMetadataFromSerialized(cls, serialized: str, property_name: str) -> str: def deserialize(self, serialized, file_name = None): """Overridden from InstanceContainer""" + CachedMemberFunctions.clearInstanceCache(self) + containers_to_add = [] # update the serialized data first from UM.Settings.Interfaces import ContainerInterface diff --git a/resources/conandata.yml b/resources/conandata.yml index d43b7d4dd2e..9e4e8b52711 100644 --- a/resources/conandata.yml +++ b/resources/conandata.yml @@ -1 +1 @@ -version: "5.8.0" +version: "5.9.0-alpha.0" diff --git a/resources/definitions/fdmextruder.def.json b/resources/definitions/fdmextruder.def.json index cc445482e7e..506d1676cd9 100644 --- a/resources/definitions/fdmextruder.def.json +++ b/resources/definitions/fdmextruder.def.json @@ -183,7 +183,6 @@ "default_value": 3, "description": "The height difference between the tip of the nozzle and the lowest part of the print head.", "label": "Nozzle Length", - "settable_globally": false, "settable_per_extruder": true, "settable_per_mesh": false, "settable_per_meshgroup": false, diff --git a/resources/definitions/ultimaker_factor4.def.json b/resources/definitions/ultimaker_factor4.def.json index 573b26cf506..5945d3a2628 100644 --- a/resources/definitions/ultimaker_factor4.def.json +++ b/resources/definitions/ultimaker_factor4.def.json @@ -112,10 +112,10 @@ "machine_head_with_fans_polygon": { "default_value": [ - [-30, -80], - [-30, 20], - [50, 20], - [50, -80] + [-35, -80], + [-35, 30], + [55, 30], + [55, -80] ] }, "machine_heated_bed": { "default_value": true }, diff --git a/resources/quality/ultimaker_factor4/um_f4_aa0.8_tpu_0.3mm.inst.cfg b/resources/quality/ultimaker_factor4/um_f4_aa0.8_tpu_0.3mm.inst.cfg new file mode 100644 index 00000000000..7949c64afc2 --- /dev/null +++ b/resources/quality/ultimaker_factor4/um_f4_aa0.8_tpu_0.3mm.inst.cfg @@ -0,0 +1,26 @@ +[general] +definition = ultimaker_factor4 +name = Extra Fast +version = 4 + +[metadata] +material = generic_tpu +quality_type = verydraft +setting_version = 23 +type = quality +variant = AA 0.8 +weight = -3 + +[values] +gradual_flow_discretisation_step_size = 0.1 +gradual_flow_enabled = True +infill_pattern = ='zigzag' if infill_sparse_density > 50 else 'cross_3d' +infill_sparse_density = 20 +inset_direction = outside_in +material_print_temperature = =default_material_print_temperature + 5 +max_flow_acceleration = 1 +skin_material_flow = =material_flow * 0.9 +skin_material_flow_layer_0 = 90 +speed_layer_0 = 20 +speed_print = 35 + diff --git a/resources/quality/ultimaker_factor4/um_f4_aa0.8_tpu_0.4mm.inst.cfg b/resources/quality/ultimaker_factor4/um_f4_aa0.8_tpu_0.4mm.inst.cfg new file mode 100644 index 00000000000..4b1d25bd18e --- /dev/null +++ b/resources/quality/ultimaker_factor4/um_f4_aa0.8_tpu_0.4mm.inst.cfg @@ -0,0 +1,26 @@ +[general] +definition = ultimaker_factor4 +name = Sprint +version = 4 + +[metadata] +material = generic_tpu +quality_type = superdraft +setting_version = 23 +type = quality +variant = AA 0.8 +weight = -4 + +[values] +gradual_flow_discretisation_step_size = 0.1 +gradual_flow_enabled = True +infill_pattern = ='zigzag' if infill_sparse_density > 50 else 'cross_3d' +infill_sparse_density = 20 +inset_direction = outside_in +material_print_temperature = =default_material_print_temperature + 8 +max_flow_acceleration = 1 +skin_material_flow = =material_flow * 0.9 +skin_material_flow_layer_0 = 90 +speed_layer_0 = 20 +speed_print = 35 + diff --git a/resources/quality/ultimaker_factor4/um_f4_bb0.4_pva_0.15mm.inst.cfg b/resources/quality/ultimaker_factor4/um_f4_bb0.4_pva_0.15mm.inst.cfg index 3294a3a1500..37e9bb8b737 100644 --- a/resources/quality/ultimaker_factor4/um_f4_bb0.4_pva_0.15mm.inst.cfg +++ b/resources/quality/ultimaker_factor4/um_f4_bb0.4_pva_0.15mm.inst.cfg @@ -12,20 +12,32 @@ variant = BB 0.4 weight = -1 [values] +acceleration_print = 1000.0 acceleration_support_bottom = 100 -acceleration_support_interface = 1500 +acceleration_support_interface = 1000 brim_replaces_support = False build_volume_temperature = =40 if extruders_enabled_count > 1 else 35 default_material_bed_temperature = =0 if extruders_enabled_count > 1 else 60 gradual_flow_discretisation_step_size = 0.1 gradual_flow_enabled = True -initial_layer_line_width_factor = 150 +gradual_support_infill_steps = 0 +initial_layer_line_width_factor = 125 +jerk_print = 10 +material_flow_layer_0 = 90 max_flow_acceleration = 1 minimum_support_area = 4 +prime_tower_flow = 90 prime_tower_min_volume = 15 +retraction_min_travel = 5.0 +retraction_prime_speed = 10.0 skin_material_flow = =material_flow * 0.93 +speed_print = 30 +support_angle = 45 +support_infill_rate = 20 support_infill_sparse_thickness = =min(layer_height * 2, machine_nozzle_size * 3 / 4) if layer_height <= 0.15 / 0.4 * machine_nozzle_size else layer_height support_interface_offset = 1 support_offset = 3 +support_xy_distance = 2 support_z_distance = 0 +switch_extruder_prime_speed = 10.0 diff --git a/resources/quality/ultimaker_factor4/um_f4_bb0.4_pva_0.1mm.inst.cfg b/resources/quality/ultimaker_factor4/um_f4_bb0.4_pva_0.1mm.inst.cfg index 0f10e4f507a..4c832766413 100644 --- a/resources/quality/ultimaker_factor4/um_f4_bb0.4_pva_0.1mm.inst.cfg +++ b/resources/quality/ultimaker_factor4/um_f4_bb0.4_pva_0.1mm.inst.cfg @@ -12,21 +12,32 @@ variant = BB 0.4 weight = 0 [values] +acceleration_print = 1000.0 acceleration_support_bottom = 100 -acceleration_support_interface = 1500 +acceleration_support_interface = 1000 brim_replaces_support = False build_volume_temperature = =40 if extruders_enabled_count > 1 else 35 default_material_bed_temperature = =0 if extruders_enabled_count > 1 else 60 gradual_flow_discretisation_step_size = 0.1 gradual_flow_enabled = True -initial_layer_line_width_factor = 150 +gradual_support_infill_steps = 0 +initial_layer_line_width_factor = 125 +jerk_print = 10 +material_flow_layer_0 = 90 max_flow_acceleration = 1 minimum_support_area = 4 +prime_tower_flow = 90 prime_tower_min_volume = 15 +retraction_min_travel = 5.0 +retraction_prime_speed = 10.0 skin_material_flow = =material_flow * 0.93 -speed_print = 50 +speed_print = 30 +support_angle = 45 +support_infill_rate = 20 support_infill_sparse_thickness = =min(layer_height * 2, machine_nozzle_size * 3 / 4) if layer_height <= 0.15 / 0.4 * machine_nozzle_size else layer_height support_interface_offset = 1 support_offset = 3 +support_xy_distance = 2 support_z_distance = 0 +switch_extruder_prime_speed = 10.0 diff --git a/resources/quality/ultimaker_factor4/um_f4_bb0.4_pva_0.2mm.inst.cfg b/resources/quality/ultimaker_factor4/um_f4_bb0.4_pva_0.2mm.inst.cfg index ef920e6fd75..93f62df9839 100644 --- a/resources/quality/ultimaker_factor4/um_f4_bb0.4_pva_0.2mm.inst.cfg +++ b/resources/quality/ultimaker_factor4/um_f4_bb0.4_pva_0.2mm.inst.cfg @@ -12,21 +12,32 @@ variant = BB 0.4 weight = -2 [values] +acceleration_print = 1000.0 acceleration_support_bottom = 100 -acceleration_support_interface = 1500 +acceleration_support_interface = 1000 brim_replaces_support = False build_volume_temperature = =40 if extruders_enabled_count > 1 else 35 default_material_bed_temperature = =0 if extruders_enabled_count > 1 else 60 gradual_flow_discretisation_step_size = 0.1 gradual_flow_enabled = True -initial_layer_line_width_factor = 150 +gradual_support_infill_steps = 0 +initial_layer_line_width_factor = 125 +jerk_print = 10 +material_flow_layer_0 = 90 max_flow_acceleration = 1 minimum_support_area = 4 +prime_tower_flow = 90 prime_tower_min_volume = 15 +retraction_min_travel = 5.0 +retraction_prime_speed = 10.0 skin_material_flow = =material_flow * 0.93 -speed_print = 50 +speed_print = 30 +support_angle = 45 +support_infill_rate = 20 support_infill_sparse_thickness = =min(layer_height * 2, machine_nozzle_size * 3 / 4) if layer_height <= 0.15 / 0.4 * machine_nozzle_size else layer_height support_interface_offset = 1 support_offset = 3 +support_xy_distance = 2 support_z_distance = 0 +switch_extruder_prime_speed = 10.0 diff --git a/resources/quality/ultimaker_factor4/um_f4_bb0.4_pva_0.3mm.inst.cfg b/resources/quality/ultimaker_factor4/um_f4_bb0.4_pva_0.3mm.inst.cfg index 4165a27a58e..0d946c00923 100644 --- a/resources/quality/ultimaker_factor4/um_f4_bb0.4_pva_0.3mm.inst.cfg +++ b/resources/quality/ultimaker_factor4/um_f4_bb0.4_pva_0.3mm.inst.cfg @@ -12,21 +12,32 @@ variant = BB 0.4 weight = -3 [values] +acceleration_print = 1000.0 acceleration_support_bottom = 100 -acceleration_support_interface = 1500 +acceleration_support_interface = 1000 brim_replaces_support = False build_volume_temperature = =40 if extruders_enabled_count > 1 else 35 default_material_bed_temperature = =0 if extruders_enabled_count > 1 else 60 gradual_flow_discretisation_step_size = 0.1 gradual_flow_enabled = True -initial_layer_line_width_factor = 150 +gradual_support_infill_steps = 0 +initial_layer_line_width_factor = 125 +jerk_print = 10 +material_flow_layer_0 = 90 max_flow_acceleration = 1 minimum_support_area = 4 +prime_tower_flow = 90 prime_tower_min_volume = 15 +retraction_min_travel = 5.0 +retraction_prime_speed = 10.0 skin_material_flow = =material_flow * 0.93 -speed_print = 40 +speed_print = 30 +support_angle = 45 +support_infill_rate = 20 support_infill_sparse_thickness = =min(layer_height * 2, machine_nozzle_size * 3 / 4) if layer_height <= 0.15 / 0.4 * machine_nozzle_size else layer_height support_interface_offset = 1 support_offset = 3 +support_xy_distance = 2 support_z_distance = 0 +switch_extruder_prime_speed = 10.0 diff --git a/resources/quality/ultimaker_factor4/um_f4_bb0.8_pva_0.2mm.inst.cfg b/resources/quality/ultimaker_factor4/um_f4_bb0.8_pva_0.2mm.inst.cfg index 2963265eece..148a82c9917 100644 --- a/resources/quality/ultimaker_factor4/um_f4_bb0.8_pva_0.2mm.inst.cfg +++ b/resources/quality/ultimaker_factor4/um_f4_bb0.8_pva_0.2mm.inst.cfg @@ -12,20 +12,32 @@ variant = BB 0.8 weight = -2 [values] +acceleration_print = 1000.0 acceleration_support_bottom = 100 -acceleration_support_interface = 1500 +acceleration_support_interface = 1000 brim_replaces_support = False build_volume_temperature = =40 if extruders_enabled_count > 1 else 35 default_material_bed_temperature = =0 if extruders_enabled_count > 1 else 60 gradual_flow_discretisation_step_size = 0.1 gradual_flow_enabled = True -initial_layer_line_width_factor = 150 +gradual_support_infill_steps = 0 +initial_layer_line_width_factor = 125 +jerk_print = 10 +material_flow_layer_0 = 90 max_flow_acceleration = 1 minimum_support_area = 4 +prime_tower_flow = 90 prime_tower_min_volume = 15 +retraction_min_travel = 5.0 +retraction_prime_speed = 10.0 skin_material_flow = =material_flow * 0.93 +speed_print = 30 +support_angle = 45 +support_infill_rate = 20 support_infill_sparse_thickness = =min(layer_height * 2, machine_nozzle_size * 3 / 4) if layer_height <= 0.15 / 0.4 * machine_nozzle_size else layer_height support_interface_offset = 1 support_offset = 3 +support_xy_distance = 2 support_z_distance = 0 +switch_extruder_prime_speed = 10.0 diff --git a/resources/quality/ultimaker_factor4/um_f4_bb0.8_pva_0.3mm.inst.cfg b/resources/quality/ultimaker_factor4/um_f4_bb0.8_pva_0.3mm.inst.cfg index 0a1437fd300..8ab21460461 100644 --- a/resources/quality/ultimaker_factor4/um_f4_bb0.8_pva_0.3mm.inst.cfg +++ b/resources/quality/ultimaker_factor4/um_f4_bb0.8_pva_0.3mm.inst.cfg @@ -12,20 +12,32 @@ variant = BB 0.8 weight = -3 [values] +acceleration_print = 1000.0 acceleration_support_bottom = 100 -acceleration_support_interface = 1500 +acceleration_support_interface = 1000 brim_replaces_support = False build_volume_temperature = =40 if extruders_enabled_count > 1 else 35 default_material_bed_temperature = =0 if extruders_enabled_count > 1 else 60 gradual_flow_discretisation_step_size = 0.1 gradual_flow_enabled = True -initial_layer_line_width_factor = 150 +gradual_support_infill_steps = 0 +initial_layer_line_width_factor = 125 +jerk_print = 10 +material_flow_layer_0 = 90 max_flow_acceleration = 1 minimum_support_area = 4 +prime_tower_flow = 90 prime_tower_min_volume = 15 +retraction_min_travel = 5.0 +retraction_prime_speed = 10.0 skin_material_flow = =material_flow * 0.93 +speed_print = 30 +support_angle = 45 +support_infill_rate = 20 support_infill_sparse_thickness = =min(layer_height * 2, machine_nozzle_size * 3 / 4) if layer_height <= 0.15 / 0.4 * machine_nozzle_size else layer_height support_interface_offset = 1 support_offset = 3 +support_xy_distance = 2 support_z_distance = 0 +switch_extruder_prime_speed = 10.0 diff --git a/resources/quality/ultimaker_factor4/um_f4_bb0.8_pva_0.4mm.inst.cfg b/resources/quality/ultimaker_factor4/um_f4_bb0.8_pva_0.4mm.inst.cfg index edd837f8fc2..52134575b0f 100644 --- a/resources/quality/ultimaker_factor4/um_f4_bb0.8_pva_0.4mm.inst.cfg +++ b/resources/quality/ultimaker_factor4/um_f4_bb0.8_pva_0.4mm.inst.cfg @@ -12,20 +12,32 @@ variant = BB 0.8 weight = -4 [values] +acceleration_print = 1000.0 acceleration_support_bottom = 100 -acceleration_support_interface = 1500 +acceleration_support_interface = 1000 brim_replaces_support = False build_volume_temperature = =40 if extruders_enabled_count > 1 else 35 default_material_bed_temperature = =0 if extruders_enabled_count > 1 else 60 gradual_flow_discretisation_step_size = 0.1 gradual_flow_enabled = True -initial_layer_line_width_factor = 150 +gradual_support_infill_steps = 0 +initial_layer_line_width_factor = 125 +jerk_print = 10 +material_flow_layer_0 = 90 max_flow_acceleration = 1 minimum_support_area = 4 +prime_tower_flow = 90 prime_tower_min_volume = 15 +retraction_min_travel = 5.0 +retraction_prime_speed = 10.0 skin_material_flow = =material_flow * 0.93 +speed_print = 30 +support_angle = 45 +support_infill_rate = 20 support_infill_sparse_thickness = =min(layer_height * 2, machine_nozzle_size * 3 / 4) if layer_height <= 0.15 / 0.4 * machine_nozzle_size else layer_height support_interface_offset = 1 support_offset = 3 +support_xy_distance = 2 support_z_distance = 0 +switch_extruder_prime_speed = 10.0 diff --git a/resources/quality/ultimaker_factor4/um_f4_global_Verydraft_Quality.inst.cfg b/resources/quality/ultimaker_factor4/um_f4_global_Verydraft_Quality.inst.cfg index 6aa1be79a39..48feef87236 100644 --- a/resources/quality/ultimaker_factor4/um_f4_global_Verydraft_Quality.inst.cfg +++ b/resources/quality/ultimaker_factor4/um_f4_global_Verydraft_Quality.inst.cfg @@ -1,6 +1,6 @@ [general] definition = ultimaker_factor4 -name = Sprint +name = Extra Fast version = 4 [metadata] diff --git a/resources/texts/change_log.txt b/resources/texts/change_log.txt index cb5aa3d2a67..237caedea9a 100644 --- a/resources/texts/change_log.txt +++ b/resources/texts/change_log.txt @@ -1,3 +1,11 @@ +[5.8.1] + +* Bug fixes: +- Fixed an issue where materials could not be synced to UltiMaker Printers + +* Profile Improvements +- Significant improvements for PVA and TPU 95A profiles for UltiMaker Factor 4 + [5.8] * New Z Seam Settings: