Merge branch 'main' into CURA-12528_unwrap_uvs

This commit is contained in:
Erwan MATHIEU 2025-08-04 11:29:45 +02:00 committed by GitHub
commit bef7bac6a1
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
21 changed files with 309 additions and 59 deletions

View file

@ -9,7 +9,6 @@ import time
import platform
from pathlib import Path
from typing import cast, TYPE_CHECKING, Optional, Callable, List, Any, Dict
import requests
import numpy
from PyQt6.QtCore import QObject, QTimer, QUrl, QUrlQuery, pyqtSignal, pyqtProperty, QEvent, pyqtEnum, QCoreApplication, \
@ -1645,14 +1644,10 @@ class CuraApplication(QtApplication):
Logger.log("w", "Unable to reload data because we don't have a filename.")
for file_name, nodes in objects_in_filename.items():
file_path = os.path.normpath(os.path.dirname(file_name))
job = ReadMeshJob(file_name,
add_to_recent_files=file_path != tempfile.gettempdir()) # Don't add temp files to the recent files list
job._nodes = nodes # type: ignore
job.finished.connect(self._reloadMeshFinished)
on_done = None
if has_merged_nodes:
job.finished.connect(self.updateOriginOfMergedMeshes)
job.start()
on_done = self.updateOriginOfMergedMeshes
self.getController().getScene().reloadNodes(nodes, file_name, on_done)
@pyqtSlot("QStringList")
def setExpandedCategories(self, categories: List[str]) -> None:
@ -1835,53 +1830,6 @@ class CuraApplication(QtApplication):
fileLoaded = pyqtSignal(str)
fileCompleted = pyqtSignal(str)
def _reloadMeshFinished(self, job) -> None:
"""
Function called when ReadMeshJob finishes reloading a file in the background, then update node objects in the
scene from its source file. The function gets all the nodes that exist in the file through the job result, and
then finds the scene nodes that need to be refreshed by their name. Each job refreshes all nodes of a file.
Nodes that are not present in the updated file are kept in the scene.
:param job: The :py:class:`Uranium.UM.ReadMeshJob.ReadMeshJob` running in the background that reads all the
meshes in a file
"""
job_result = job.getResult() # nodes that exist inside the file read by this job
if len(job_result) == 0:
Logger.log("e", "Reloading the mesh failed.")
return
renamed_nodes = {} # type: Dict[str, int]
# Find the node to be refreshed based on its id
for job_result_node in job_result:
mesh_data = job_result_node.getMeshData()
if not mesh_data:
Logger.log("w", "Could not find a mesh in reloaded node.")
continue
# Solves issues with object naming
result_node_name = job_result_node.getName()
if not result_node_name:
result_node_name = os.path.basename(mesh_data.getFileName())
if result_node_name in renamed_nodes: # objects may get renamed by ObjectsModel._renameNodes() when loaded
renamed_nodes[result_node_name] += 1
result_node_name = "{0}({1})".format(result_node_name, renamed_nodes[result_node_name])
else:
renamed_nodes[job_result_node.getName()] = 0
# Find the matching scene node to replace
scene_node = None
for replaced_node in job._nodes:
if replaced_node.getName() == result_node_name:
scene_node = replaced_node
break
if scene_node:
scene_node.setMeshData(mesh_data)
else:
# Current node is a new one in the file, or it's name has changed
# TODO: Load this mesh into the scene. Also alter the "_reloadJobFinished" action in UM.Scene
Logger.log("w", "Could not find matching node for object '{0}' in the scene.".format(result_node_name))
def _openFile(self, filename):
self.readLocalFile(QUrl.fromLocalFile(filename))

View file

@ -0,0 +1,18 @@
[general]
definition = ultimaker_s8
name = Accurate
version = 4
[metadata]
intent_category = engineering
material = generic_cpe_plus
quality_type = draft
setting_version = 25
type = intent
variant = AA+ 0.4
[values]
infill_sparse_density = 20
top_bottom_thickness = =wall_thickness
wall_thickness = =line_width * 4

View file

@ -0,0 +1,18 @@
[general]
definition = ultimaker_s8
name = Accurate
version = 4
[metadata]
intent_category = engineering
material = generic_pc
quality_type = draft
setting_version = 25
type = intent
variant = AA+ 0.4
[values]
infill_sparse_density = 20
top_bottom_thickness = =wall_thickness
wall_thickness = =line_width * 4

View file

@ -5,6 +5,7 @@ version = 4
[metadata]
intent_category = engineering
is_experimental = True
material = generic_cpe_plus
quality_type = draft
setting_version = 25

View file

@ -5,6 +5,7 @@ version = 4
[metadata]
intent_category = engineering
is_experimental = True
material = generic_nylon-cf-slide
quality_type = draft
setting_version = 25

View file

@ -5,6 +5,7 @@ version = 4
[metadata]
intent_category = engineering
is_experimental = True
material = generic_pc
quality_type = draft
setting_version = 25

View file

@ -5,6 +5,7 @@ version = 4
[metadata]
intent_category = engineering
is_experimental = True
material = generic_petcf
quality_type = draft
setting_version = 25

View file

@ -0,0 +1,18 @@
[general]
definition = ultimaker_s8
name = Accurate
version = 4
[metadata]
intent_category = engineering
material = generic_nylon-cf-slide
quality_type = draft
setting_version = 25
type = intent
variant = CC+ 0.6
[values]
infill_sparse_density = 20
top_bottom_thickness = =wall_thickness
wall_thickness = =line_width * 4

View file

@ -0,0 +1,18 @@
[general]
definition = ultimaker_s8
name = Accurate
version = 4
[metadata]
intent_category = engineering
material = generic_petcf
quality_type = draft
setting_version = 25
type = intent
variant = CC+ 0.6
[values]
infill_sparse_density = 20
top_bottom_thickness = =wall_thickness
wall_thickness = =line_width * 4

View file

@ -0,0 +1,19 @@
[general]
definition = ultimaker_s8
name = Fast
version = 4
[metadata]
material = generic_cpe_plus
quality_type = draft
setting_version = 25
type = quality
variant = AA+ 0.4
weight = -2
[values]
adhesion_type = brim
material_alternate_walls = True
material_final_print_temperature = =material_print_temperature - 15
material_initial_print_temperature = =material_print_temperature - 15

View file

@ -0,0 +1,25 @@
[general]
definition = ultimaker_s8
name = Fast
version = 4
[metadata]
material = generic_pc
quality_type = draft
setting_version = 25
type = quality
variant = AA+ 0.4
weight = -2
[values]
adhesion_type = brim
cool_min_layer_time = 6
cool_min_layer_time_fan_speed_max = 12
inset_direction = inside_out
material_alternate_walls = True
material_final_print_temperature = =material_print_temperature - 15
material_flow = 95
material_initial_print_temperature = =material_print_temperature - 15
retraction_prime_speed = 15
speed_wall_x = =speed_wall_0

View file

@ -15,4 +15,5 @@ weight = -2
cool_min_layer_time = 4
material_print_temperature = =default_material_print_temperature + 5
retraction_prime_speed = 15
support_structure = tree

View file

@ -1,9 +1,10 @@
[general]
definition = ultimaker_s8
name = Fast
name = Fast - Experimental
version = 4
[metadata]
is_experimental = True
material = generic_cpe_plus
quality_type = draft
setting_version = 25

View file

@ -1,9 +1,10 @@
[general]
definition = ultimaker_s8
name = Fast
name = Fast - Experimental
version = 4
[metadata]
is_experimental = True
material = generic_nylon-cf-slide
quality_type = draft
setting_version = 25
@ -12,6 +13,12 @@ variant = CC+ 0.4
weight = -2
[values]
bridge_skin_material_flow = 100
bridge_skin_speed = 30
bridge_wall_material_flow = 100
bridge_wall_speed = 30
cool_min_layer_time_fan_speed_max = 11
retraction_prime_speed = 15
support_structure = tree
wall_overhang_speed_factors = [100,90,80,70,60,50]

View file

@ -1,9 +1,10 @@
[general]
definition = ultimaker_s8
name = Fast
name = Fast - Experimental
version = 4
[metadata]
is_experimental = True
material = generic_pc
quality_type = draft
setting_version = 25

View file

@ -1,9 +1,10 @@
[general]
definition = ultimaker_s8
name = Fast
name = Fast - Experimental
version = 4
[metadata]
is_experimental = True
material = generic_petcf
quality_type = draft
setting_version = 25
@ -12,5 +13,12 @@ variant = CC+ 0.4
weight = -2
[values]
adhesion_type = skirt
bridge_skin_material_flow = 100
bridge_skin_speed = 30
bridge_wall_material_flow = 100
bridge_wall_speed = 30
support_structure = tree
switch_extruder_retraction_amount = 16
wall_overhang_speed_factors = [100,90,80,70,60,50]

View file

@ -0,0 +1,60 @@
[general]
definition = ultimaker_s8
name = Fast
version = 4
[metadata]
material = generic_nylon-cf-slide
quality_type = draft
setting_version = 25
type = quality
variant = CC+ 0.6
weight = -2
[values]
acceleration_roofing = =acceleration_topbottom/2
bridge_enable_more_layers = True
bridge_skin_density = 70
bridge_skin_material_flow = 100
bridge_skin_material_flow_2 = 70
bridge_skin_speed = 30
bridge_skin_speed_2 = =speed_print*2/3
bridge_wall_material_flow = 100
bridge_wall_min_length = 2
bridge_wall_speed = 30
cool_min_layer_time = 6
cool_min_layer_time_fan_speed_max = 11
cool_min_layer_time_overhang = 11
cool_min_temperature = =material_print_temperature-10
flooring_monotonic = False
infill_material_flow = =material_flow if infill_sparse_density < 95 else 95
infill_pattern = ='zigzag' if infill_sparse_density > 50 else 'grid'
jerk_roofing = =jerk_print
material_flow = 95
retraction_hop_enabled = False
retraction_prime_speed = 25
roofing_line_width = 0.5
roofing_material_flow = =skin_material_flow
roofing_monotonic = False
skin_material_flow = =0.95*material_flow
skin_outline_count = 0
speed_print = 80
speed_roofing = 50
speed_wall = =speed_print
speed_wall_0_roofing = =speed_roofing
speed_wall_x_roofing = =speed_roofing
support_bottom_distance = =support_z_distance
support_line_width = 0.6
support_structure = tree
support_tree_tip_diameter = 2.0
support_tree_top_rate = 10
support_xy_distance = 1.2
support_xy_distance_overhang = =1.5*machine_nozzle_size
support_z_distance = =min(2*layer_height, 0.4)
top_bottom_thickness = =wall_thickness
wall_0_inset = =0.05
wall_line_width_0 = 0.5
wall_overhang_speed_factors = [100,90,80,70,60,50]
wall_x_material_flow = =material_flow
xy_offset = 0.075

View file

@ -0,0 +1,63 @@
[general]
definition = ultimaker_s8
name = Fast
version = 4
[metadata]
material = generic_petcf
quality_type = draft
setting_version = 25
type = quality
variant = CC+ 0.6
weight = -2
[values]
acceleration_roofing = =acceleration_topbottom/2
adhesion_type = skirt
bridge_enable_more_layers = True
bridge_skin_density = 70
bridge_skin_material_flow = 100
bridge_skin_material_flow_2 = 70
bridge_skin_speed = 30
bridge_skin_speed_2 = =speed_print*2/3
bridge_wall_material_flow = 100
bridge_wall_min_length = 2
bridge_wall_speed = 30
cool_min_layer_time = 6
cool_min_layer_time_overhang = 11
cool_min_temperature = =material_print_temperature-10
flooring_monotonic = False
infill_material_flow = =material_flow if infill_sparse_density < 95 else 95
infill_pattern = ='zigzag' if infill_sparse_density > 50 else 'grid'
jerk_roofing = =jerk_print
material_pressure_advance_factor = 0.25
retraction_hop_enabled = False
retraction_prime_speed = 15
roofing_line_width = 0.5
roofing_material_flow = =skin_material_flow
roofing_monotonic = False
skin_material_flow = =0.95*material_flow
skin_outline_count = 0
skirt_height = 5
speed_print = 80
speed_roofing = 50
speed_wall = =speed_print
speed_wall_0_roofing = =speed_roofing
speed_wall_x_roofing = =speed_roofing
support_bottom_distance = =support_z_distance
support_interface_enable = False
support_line_width = 0.6
support_structure = tree
support_tree_tip_diameter = 2.0
support_tree_top_rate = 10
support_xy_distance = 1.2
support_xy_distance_overhang = =1.5*machine_nozzle_size
support_z_distance = =min(2*layer_height, 0.4)
switch_extruder_retraction_amount = 16
top_bottom_thickness = =wall_thickness
wall_0_inset = =0.05
wall_line_width_0 = 0.5
wall_overhang_speed_factors = [100,90,80,70,60,50]
wall_x_material_flow = =material_flow
xy_offset = 0.075

View file

@ -1,3 +1,10 @@
[5.10.2]
* UltiMaker S6 and S8 improvements:
- Introduced the CC+ 0.6 core to the UltiMaker S6 and S8. This core delivers better results for demanding applications and will be replacing the CC+ 0.4 core.
- Added new profiles for PC and CPE+ on UltiMaker S6 and S8
- Updated the default support type for the PETG material for UltiMaker S6 and S8
[5.10.1]
* New features and improvements:

View file

@ -0,0 +1,17 @@
[general]
definition = ultimaker_s6
name = CC+ 0.6
version = 4
[metadata]
hardware_type = nozzle
setting_version = 25
type = variant
[values]
machine_nozzle_cool_down_speed = 0.9
machine_nozzle_id = CC+ 0.6
machine_nozzle_size = 0.6
machine_nozzle_tip_outer_diameter = 1.2
retraction_prime_speed = =retraction_speed

View file

@ -0,0 +1,17 @@
[general]
definition = ultimaker_s8
name = CC+ 0.6
version = 4
[metadata]
hardware_type = nozzle
setting_version = 25
type = variant
[values]
machine_nozzle_cool_down_speed = 0.9
machine_nozzle_id = CC+ 0.6
machine_nozzle_size = 0.6
machine_nozzle_tip_outer_diameter = 1.2
retraction_prime_speed = =retraction_speed