Merge branch 'main' into CURA-12138-Export_for_support_option

This commit is contained in:
Erwan MATHIEU 2024-09-27 15:48:02 +02:00 committed by GitHub
commit 4d2c879d1d
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
19 changed files with 182 additions and 27 deletions

View file

@ -9,6 +9,11 @@ on:
required: true required: true
type: string 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: jobs:
parse-version: parse-version:
name: Parse input version string name: Parse input version string
@ -153,10 +158,12 @@ jobs:
ref: ${{ needs.parse-version.outputs.branch_name }} ref: ${{ needs.parse-version.outputs.branch_name }}
- name: Extract changelog - 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 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 - name: Create release
uses: notpeelz/action-gh-create-release@v5.0.1 uses: notpeelz/action-gh-create-release@v5.0.1
if: ${{ inputs.publish_release_description }}
with: with:
target: ${{ needs.create-tags.outputs.main_commit }} target: ${{ needs.create-tags.outputs.main_commit }}
tag: ${{ inputs.cura_version }} tag: ${{ inputs.cura_version }}

View file

@ -10,7 +10,7 @@ requirements:
- "pynest2d/5.3.0" - "pynest2d/5.3.0"
- "native_cad_plugin/2.0.0" - "native_cad_plugin/2.0.0"
requirements_internal: requirements_internal:
- "fdm_materials/(latest)@internal/testing" - "fdm_materials/5.8.1"
- "cura_private_data/(latest)@internal/testing" - "cura_private_data/(latest)@internal/testing"
urls: urls:
default: default:

View file

@ -5,7 +5,7 @@ from typing import Any, cast, List, Optional, Dict
from PyQt6.QtCore import pyqtProperty, pyqtSignal, QObject from PyQt6.QtCore import pyqtProperty, pyqtSignal, QObject
from UM.Application import Application from UM.Application import Application
from UM.Decorators import override from UM.Decorators import CachedMemberFunctions, override
from UM.FlameProfiler import pyqtSlot from UM.FlameProfiler import pyqtSlot
from UM.Logger import Logger from UM.Logger import Logger
from UM.Settings.ContainerStack import ContainerStack, InvalidContainerStackError from UM.Settings.ContainerStack import ContainerStack, InvalidContainerStackError
@ -237,6 +237,7 @@ class CuraContainerStack(ContainerStack):
:param new_value: The new value to set the property to. :param new_value: The new value to set the property to.
""" """
CachedMemberFunctions.clearInstanceCache(self)
container_index = _ContainerIndexes.UserChanges container_index = _ContainerIndexes.UserChanges
self._containers[container_index].setProperty(key, property_name, property_value, container, set_from_cache) self._containers[container_index].setProperty(key, property_name, property_value, container, set_from_cache)

View file

@ -5,7 +5,7 @@ from typing import Any, Dict, TYPE_CHECKING, Optional
from PyQt6.QtCore import pyqtProperty, pyqtSignal 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.MimeTypeDatabase import MimeType, MimeTypeDatabase
from UM.Settings.ContainerStack import ContainerStack from UM.Settings.ContainerStack import ContainerStack
from UM.Settings.ContainerRegistry import ContainerRegistry from UM.Settings.ContainerRegistry import ContainerRegistry
@ -86,6 +86,7 @@ class ExtruderStack(CuraContainerStack):
def setCompatibleMaterialDiameter(self, value: float) -> None: def setCompatibleMaterialDiameter(self, value: float) -> None:
old_approximate_diameter = self.getApproximateMaterialDiameter() old_approximate_diameter = self.getApproximateMaterialDiameter()
if self.getCompatibleMaterialDiameter() != value: if self.getCompatibleMaterialDiameter() != value:
CachedMemberFunctions.clearInstanceCache(self)
self.definitionChanges.setProperty("material_diameter", "value", value) self.definitionChanges.setProperty("material_diameter", "value", value)
self.compatibleMaterialDiameterChanged.emit() self.compatibleMaterialDiameterChanged.emit()

View file

@ -11,6 +11,7 @@ import xml.etree.ElementTree as ET
from UM.PluginRegistry import PluginRegistry from UM.PluginRegistry import PluginRegistry
from UM.Resources import Resources from UM.Resources import Resources
from UM.Logger import Logger from UM.Logger import Logger
from UM.Decorators import CachedMemberFunctions
import UM.Dictionary import UM.Dictionary
from UM.Settings.InstanceContainer import InstanceContainer from UM.Settings.InstanceContainer import InstanceContainer
from UM.Settings.ContainerRegistry import ContainerRegistry from UM.Settings.ContainerRegistry import ContainerRegistry
@ -71,6 +72,8 @@ class XmlMaterialProfile(InstanceContainer):
Logger.log("w", "Can't change metadata {key} of material {material_id} because it's read-only.".format(key = key, material_id = self.getId())) 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 return
CachedMemberFunctions.clearInstanceCache(self)
# Some metadata such as diameter should also be instantiated to be a setting. Go though all values for the # 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. # "properties" field and apply the new values to SettingInstances as well.
new_setting_values_dict = {} new_setting_values_dict = {}
@ -480,6 +483,7 @@ class XmlMaterialProfile(InstanceContainer):
first.append(element) first.append(element)
def clearData(self): def clearData(self):
CachedMemberFunctions.clearInstanceCache(self)
self._metadata = { self._metadata = {
"id": self.getId(), "id": self.getId(),
"name": "" "name": ""
@ -519,6 +523,8 @@ class XmlMaterialProfile(InstanceContainer):
def deserialize(self, serialized, file_name = None): def deserialize(self, serialized, file_name = None):
"""Overridden from InstanceContainer""" """Overridden from InstanceContainer"""
CachedMemberFunctions.clearInstanceCache(self)
containers_to_add = [] containers_to_add = []
# update the serialized data first # update the serialized data first
from UM.Settings.Interfaces import ContainerInterface from UM.Settings.Interfaces import ContainerInterface

View file

@ -1 +1 @@
version: "5.8.0" version: "5.9.0-alpha.0"

View file

@ -172,7 +172,6 @@
"default_value": 3, "default_value": 3,
"description": "The height difference between the tip of the nozzle and the lowest part of the print head.", "description": "The height difference between the tip of the nozzle and the lowest part of the print head.",
"label": "Nozzle Length", "label": "Nozzle Length",
"settable_globally": false,
"settable_per_extruder": true, "settable_per_extruder": true,
"settable_per_mesh": false, "settable_per_mesh": false,
"settable_per_meshgroup": false, "settable_per_meshgroup": false,

View file

@ -112,10 +112,10 @@
"machine_head_with_fans_polygon": "machine_head_with_fans_polygon":
{ {
"default_value": [ "default_value": [
[-30, -80], [-35, -80],
[-30, 20], [-35, 30],
[50, 20], [55, 30],
[50, -80] [55, -80]
] ]
}, },
"machine_heated_bed": { "default_value": true }, "machine_heated_bed": { "default_value": true },

View file

@ -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

View file

@ -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

View file

@ -12,20 +12,32 @@ variant = BB 0.4
weight = -1 weight = -1
[values] [values]
acceleration_print = 1000.0
acceleration_support_bottom = 100 acceleration_support_bottom = 100
acceleration_support_interface = 1500 acceleration_support_interface = 1000
brim_replaces_support = False brim_replaces_support = False
build_volume_temperature = =40 if extruders_enabled_count > 1 else 35 build_volume_temperature = =40 if extruders_enabled_count > 1 else 35
default_material_bed_temperature = =0 if extruders_enabled_count > 1 else 60 default_material_bed_temperature = =0 if extruders_enabled_count > 1 else 60
gradual_flow_discretisation_step_size = 0.1 gradual_flow_discretisation_step_size = 0.1
gradual_flow_enabled = True 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 max_flow_acceleration = 1
minimum_support_area = 4 minimum_support_area = 4
prime_tower_flow = 90
prime_tower_min_volume = 15 prime_tower_min_volume = 15
retraction_min_travel = 5.0
retraction_prime_speed = 10.0
skin_material_flow = =material_flow * 0.93 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_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_interface_offset = 1
support_offset = 3 support_offset = 3
support_xy_distance = 2
support_z_distance = 0 support_z_distance = 0
switch_extruder_prime_speed = 10.0

View file

@ -12,21 +12,32 @@ variant = BB 0.4
weight = 0 weight = 0
[values] [values]
acceleration_print = 1000.0
acceleration_support_bottom = 100 acceleration_support_bottom = 100
acceleration_support_interface = 1500 acceleration_support_interface = 1000
brim_replaces_support = False brim_replaces_support = False
build_volume_temperature = =40 if extruders_enabled_count > 1 else 35 build_volume_temperature = =40 if extruders_enabled_count > 1 else 35
default_material_bed_temperature = =0 if extruders_enabled_count > 1 else 60 default_material_bed_temperature = =0 if extruders_enabled_count > 1 else 60
gradual_flow_discretisation_step_size = 0.1 gradual_flow_discretisation_step_size = 0.1
gradual_flow_enabled = True 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 max_flow_acceleration = 1
minimum_support_area = 4 minimum_support_area = 4
prime_tower_flow = 90
prime_tower_min_volume = 15 prime_tower_min_volume = 15
retraction_min_travel = 5.0
retraction_prime_speed = 10.0
skin_material_flow = =material_flow * 0.93 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_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_interface_offset = 1
support_offset = 3 support_offset = 3
support_xy_distance = 2
support_z_distance = 0 support_z_distance = 0
switch_extruder_prime_speed = 10.0

View file

@ -12,21 +12,32 @@ variant = BB 0.4
weight = -2 weight = -2
[values] [values]
acceleration_print = 1000.0
acceleration_support_bottom = 100 acceleration_support_bottom = 100
acceleration_support_interface = 1500 acceleration_support_interface = 1000
brim_replaces_support = False brim_replaces_support = False
build_volume_temperature = =40 if extruders_enabled_count > 1 else 35 build_volume_temperature = =40 if extruders_enabled_count > 1 else 35
default_material_bed_temperature = =0 if extruders_enabled_count > 1 else 60 default_material_bed_temperature = =0 if extruders_enabled_count > 1 else 60
gradual_flow_discretisation_step_size = 0.1 gradual_flow_discretisation_step_size = 0.1
gradual_flow_enabled = True 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 max_flow_acceleration = 1
minimum_support_area = 4 minimum_support_area = 4
prime_tower_flow = 90
prime_tower_min_volume = 15 prime_tower_min_volume = 15
retraction_min_travel = 5.0
retraction_prime_speed = 10.0
skin_material_flow = =material_flow * 0.93 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_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_interface_offset = 1
support_offset = 3 support_offset = 3
support_xy_distance = 2
support_z_distance = 0 support_z_distance = 0
switch_extruder_prime_speed = 10.0

View file

@ -12,21 +12,32 @@ variant = BB 0.4
weight = -3 weight = -3
[values] [values]
acceleration_print = 1000.0
acceleration_support_bottom = 100 acceleration_support_bottom = 100
acceleration_support_interface = 1500 acceleration_support_interface = 1000
brim_replaces_support = False brim_replaces_support = False
build_volume_temperature = =40 if extruders_enabled_count > 1 else 35 build_volume_temperature = =40 if extruders_enabled_count > 1 else 35
default_material_bed_temperature = =0 if extruders_enabled_count > 1 else 60 default_material_bed_temperature = =0 if extruders_enabled_count > 1 else 60
gradual_flow_discretisation_step_size = 0.1 gradual_flow_discretisation_step_size = 0.1
gradual_flow_enabled = True 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 max_flow_acceleration = 1
minimum_support_area = 4 minimum_support_area = 4
prime_tower_flow = 90
prime_tower_min_volume = 15 prime_tower_min_volume = 15
retraction_min_travel = 5.0
retraction_prime_speed = 10.0
skin_material_flow = =material_flow * 0.93 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_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_interface_offset = 1
support_offset = 3 support_offset = 3
support_xy_distance = 2
support_z_distance = 0 support_z_distance = 0
switch_extruder_prime_speed = 10.0

View file

@ -12,20 +12,32 @@ variant = BB 0.8
weight = -2 weight = -2
[values] [values]
acceleration_print = 1000.0
acceleration_support_bottom = 100 acceleration_support_bottom = 100
acceleration_support_interface = 1500 acceleration_support_interface = 1000
brim_replaces_support = False brim_replaces_support = False
build_volume_temperature = =40 if extruders_enabled_count > 1 else 35 build_volume_temperature = =40 if extruders_enabled_count > 1 else 35
default_material_bed_temperature = =0 if extruders_enabled_count > 1 else 60 default_material_bed_temperature = =0 if extruders_enabled_count > 1 else 60
gradual_flow_discretisation_step_size = 0.1 gradual_flow_discretisation_step_size = 0.1
gradual_flow_enabled = True 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 max_flow_acceleration = 1
minimum_support_area = 4 minimum_support_area = 4
prime_tower_flow = 90
prime_tower_min_volume = 15 prime_tower_min_volume = 15
retraction_min_travel = 5.0
retraction_prime_speed = 10.0
skin_material_flow = =material_flow * 0.93 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_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_interface_offset = 1
support_offset = 3 support_offset = 3
support_xy_distance = 2
support_z_distance = 0 support_z_distance = 0
switch_extruder_prime_speed = 10.0

View file

@ -12,20 +12,32 @@ variant = BB 0.8
weight = -3 weight = -3
[values] [values]
acceleration_print = 1000.0
acceleration_support_bottom = 100 acceleration_support_bottom = 100
acceleration_support_interface = 1500 acceleration_support_interface = 1000
brim_replaces_support = False brim_replaces_support = False
build_volume_temperature = =40 if extruders_enabled_count > 1 else 35 build_volume_temperature = =40 if extruders_enabled_count > 1 else 35
default_material_bed_temperature = =0 if extruders_enabled_count > 1 else 60 default_material_bed_temperature = =0 if extruders_enabled_count > 1 else 60
gradual_flow_discretisation_step_size = 0.1 gradual_flow_discretisation_step_size = 0.1
gradual_flow_enabled = True 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 max_flow_acceleration = 1
minimum_support_area = 4 minimum_support_area = 4
prime_tower_flow = 90
prime_tower_min_volume = 15 prime_tower_min_volume = 15
retraction_min_travel = 5.0
retraction_prime_speed = 10.0
skin_material_flow = =material_flow * 0.93 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_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_interface_offset = 1
support_offset = 3 support_offset = 3
support_xy_distance = 2
support_z_distance = 0 support_z_distance = 0
switch_extruder_prime_speed = 10.0

View file

@ -12,20 +12,32 @@ variant = BB 0.8
weight = -4 weight = -4
[values] [values]
acceleration_print = 1000.0
acceleration_support_bottom = 100 acceleration_support_bottom = 100
acceleration_support_interface = 1500 acceleration_support_interface = 1000
brim_replaces_support = False brim_replaces_support = False
build_volume_temperature = =40 if extruders_enabled_count > 1 else 35 build_volume_temperature = =40 if extruders_enabled_count > 1 else 35
default_material_bed_temperature = =0 if extruders_enabled_count > 1 else 60 default_material_bed_temperature = =0 if extruders_enabled_count > 1 else 60
gradual_flow_discretisation_step_size = 0.1 gradual_flow_discretisation_step_size = 0.1
gradual_flow_enabled = True 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 max_flow_acceleration = 1
minimum_support_area = 4 minimum_support_area = 4
prime_tower_flow = 90
prime_tower_min_volume = 15 prime_tower_min_volume = 15
retraction_min_travel = 5.0
retraction_prime_speed = 10.0
skin_material_flow = =material_flow * 0.93 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_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_interface_offset = 1
support_offset = 3 support_offset = 3
support_xy_distance = 2
support_z_distance = 0 support_z_distance = 0
switch_extruder_prime_speed = 10.0

View file

@ -1,6 +1,6 @@
[general] [general]
definition = ultimaker_factor4 definition = ultimaker_factor4
name = Sprint name = Extra Fast
version = 4 version = 4
[metadata] [metadata]

View file

@ -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] [5.8]
* New Z Seam Settings: * New Z Seam Settings: