U1 HF: Resolve nozzle mismatch on-screen warning

Emit U1 nozzle flow metadata through profile end G-code

Append filament_volume_type footer comments through the standard and High Flow U1 machine profiles. Generate one comma-separated value per logical filament using existing placeholder expressions, preserving the existing end commands. Mixed-diameter standard profiles inherit the standard footer.

Bump the Snapmaker bundle to 02.04.00.17. No C++ or filament-schema changes. Validation intentionally not run at user request.

Co-authored-by: Codex <codex@openai.com>
This commit is contained in:
Eric McCann
2026-09-18 07:54:30 -04:00
co-authored by Codex
parent 19277f44ad
commit 30b3666c47
9 changed files with 13 additions and 9 deletions
+1 -1
View File
@@ -1,6 +1,6 @@
{ {
"name": "Snapmaker", "name": "Snapmaker",
"version": "02.04.00.16", "version": "02.04.00.17",
"force_update": "0", "force_update": "0",
"description": "Snapmaker configurations", "description": "Snapmaker configurations",
"machine_model_list": [ "machine_model_list": [
@@ -14,5 +14,6 @@
"Snapmaker PLA SnapSpeed @U1 0.2 High Flow nozzle", "Snapmaker PLA SnapSpeed @U1 0.2 High Flow nozzle",
"Snapmaker PLA SnapSpeed @U1 0.2 High Flow nozzle" "Snapmaker PLA SnapSpeed @U1 0.2 High Flow nozzle"
], ],
"default_print_profile": "0.10 Standard @Snapmaker U1 (0.2 High Flow nozzle)" "default_print_profile": "0.10 Standard @Snapmaker U1 (0.2 High Flow nozzle)",
"machine_end_gcode": ";===== date: 20260605 =====================\n; layer [layer_num]\n; max_layer_z [max_layer_z]\n; print_sequence [print_sequence]\n\n{if print_sequence == \"by object\"}\n{\nlocal move_z = max_print_height;\n\nif max_layer_z < ((max_print_height - z_offset) - 2) then\n move_z = z_offset + min(((max_layer_z - z_offset) + 2), max_print_height);\nendif\n}\n\nG91\nG1 X2 Y2 Z1 F24000\nG90\nG1 Z{move_z} F600\n{endif}\n\nPRINT_END\nTIMELAPSE_STOP\n\n; U1 nozzle flow metadata, one value per logical filament\n; filament_volume_type = {regex_replace(regex_replace(zdigits(0, size(filament_type)), /0/, \"high_flow,\"), /,$/, \"\")}\n"
} }
@@ -34,7 +34,7 @@
"0", "0",
"0" "0"
], ],
"machine_end_gcode": ";===== date: 20260605 =====================\n; layer [layer_num]\n; max_layer_z [max_layer_z]\n; print_sequence [print_sequence]\n\n{if print_sequence == \"by object\"}\n{\nlocal move_z = max_print_height;\n\nif max_layer_z < ((max_print_height - z_offset) - 2) then\n move_z = z_offset + min(((max_layer_z - z_offset) + 2), max_print_height);\nendif\n}\n\nG91\nG1 X2 Y2 Z1 F24000\nG90\nG1 Z{move_z} F600\n{endif}\n\nPRINT_END\nTIMELAPSE_STOP\n", "machine_end_gcode": ";===== date: 20260605 =====================\n; layer [layer_num]\n; max_layer_z [max_layer_z]\n; print_sequence [print_sequence]\n\n{if print_sequence == \"by object\"}\n{\nlocal move_z = max_print_height;\n\nif max_layer_z < ((max_print_height - z_offset) - 2) then\n move_z = z_offset + min(((max_layer_z - z_offset) + 2), max_print_height);\nendif\n}\n\nG91\nG1 X2 Y2 Z1 F24000\nG90\nG1 Z{move_z} F600\n{endif}\n\nPRINT_END\nTIMELAPSE_STOP\n\n; U1 nozzle flow metadata, one value per logical filament\n; filament_volume_type = {regex_replace(regex_replace(zdigits(0, size(filament_type)), /0/, \"standard,\"), /,$/, \"\")}\n",
"machine_max_jerk_z": [ "machine_max_jerk_z": [
"3", "3",
"0.4" "0.4"
@@ -14,5 +14,6 @@
"Snapmaker PLA SnapSpeed @U1 0.4 High Flow nozzle", "Snapmaker PLA SnapSpeed @U1 0.4 High Flow nozzle",
"Snapmaker PLA SnapSpeed @U1 0.4 High Flow nozzle" "Snapmaker PLA SnapSpeed @U1 0.4 High Flow nozzle"
], ],
"default_print_profile": "0.20 Standard @Snapmaker U1 (0.4 High Flow nozzle)" "default_print_profile": "0.20 Standard @Snapmaker U1 (0.4 High Flow nozzle)",
"machine_end_gcode": ";===== date: 20260605 =====================\n; layer [layer_num]\n; max_layer_z [max_layer_z]\n; print_sequence [print_sequence]\n\n{if print_sequence == \"by object\"}\n{\nlocal move_z = max_print_height;\n\nif max_layer_z < ((max_print_height - z_offset) - 2) then\n move_z = z_offset + min(((max_layer_z - z_offset) + 2), max_print_height);\nendif\n}\n\nG91\nG1 X2 Y2 Z1 F24000\nG90\nG1 Z{move_z} F600\n{endif}\n\nPRINT_END\nTIMELAPSE_STOP\n\n; U1 nozzle flow metadata, one value per logical filament\n; filament_volume_type = {regex_replace(regex_replace(zdigits(0, size(filament_type)), /0/, \"high_flow,\"), /,$/, \"\")}\n"
} }
@@ -34,7 +34,7 @@
"0", "0",
"0" "0"
], ],
"machine_end_gcode": ";===== date: 20260605 =====================\n; layer [layer_num]\n; max_layer_z [max_layer_z]\n; print_sequence [print_sequence]\n\n{if print_sequence == \"by object\"}\n{\nlocal move_z = max_print_height;\n\nif max_layer_z < ((max_print_height - z_offset) - 2) then\n move_z = z_offset + min(((max_layer_z - z_offset) + 2), max_print_height);\nendif\n}\n\nG91\nG1 X2 Y2 Z1 F24000\nG90\nG1 Z{move_z} F600\n{endif}\n\nPRINT_END\nTIMELAPSE_STOP\n", "machine_end_gcode": ";===== date: 20260605 =====================\n; layer [layer_num]\n; max_layer_z [max_layer_z]\n; print_sequence [print_sequence]\n\n{if print_sequence == \"by object\"}\n{\nlocal move_z = max_print_height;\n\nif max_layer_z < ((max_print_height - z_offset) - 2) then\n move_z = z_offset + min(((max_layer_z - z_offset) + 2), max_print_height);\nendif\n}\n\nG91\nG1 X2 Y2 Z1 F24000\nG90\nG1 Z{move_z} F600\n{endif}\n\nPRINT_END\nTIMELAPSE_STOP\n\n; U1 nozzle flow metadata, one value per logical filament\n; filament_volume_type = {regex_replace(regex_replace(zdigits(0, size(filament_type)), /0/, \"standard,\"), /,$/, \"\")}\n",
"machine_max_jerk_z": [ "machine_max_jerk_z": [
"3", "3",
"0.4" "0.4"
@@ -14,5 +14,6 @@
"Snapmaker PLA SnapSpeed @U1 0.6 High Flow nozzle", "Snapmaker PLA SnapSpeed @U1 0.6 High Flow nozzle",
"Snapmaker PLA SnapSpeed @U1 0.6 High Flow nozzle" "Snapmaker PLA SnapSpeed @U1 0.6 High Flow nozzle"
], ],
"default_print_profile": "0.30 Standard @Snapmaker U1 (0.6 High Flow nozzle)" "default_print_profile": "0.30 Standard @Snapmaker U1 (0.6 High Flow nozzle)",
"machine_end_gcode": ";===== date: 20260605 =====================\n; layer [layer_num]\n; max_layer_z [max_layer_z]\n; print_sequence [print_sequence]\n\n{if print_sequence == \"by object\"}\n{\nlocal move_z = max_print_height;\n\nif max_layer_z < ((max_print_height - z_offset) - 2) then\n move_z = z_offset + min(((max_layer_z - z_offset) + 2), max_print_height);\nendif\n}\n\nG91\nG1 X2 Y2 Z1 F24000\nG90\nG1 Z{move_z} F600\n{endif}\n\nPRINT_END\nTIMELAPSE_STOP\n\n; U1 nozzle flow metadata, one value per logical filament\n; filament_volume_type = {regex_replace(regex_replace(zdigits(0, size(filament_type)), /0/, \"high_flow,\"), /,$/, \"\")}\n"
} }
@@ -34,7 +34,7 @@
"0", "0",
"0" "0"
], ],
"machine_end_gcode": ";===== date: 20260605 =====================\n; layer [layer_num]\n; max_layer_z [max_layer_z]\n; print_sequence [print_sequence]\n\n{if print_sequence == \"by object\"}\n{\nlocal move_z = max_print_height;\n\nif max_layer_z < ((max_print_height - z_offset) - 2) then\n move_z = z_offset + min(((max_layer_z - z_offset) + 2), max_print_height);\nendif\n}\n\nG91\nG1 X2 Y2 Z1 F24000\nG90\nG1 Z{move_z} F600\n{endif}\n\nPRINT_END\nTIMELAPSE_STOP\n", "machine_end_gcode": ";===== date: 20260605 =====================\n; layer [layer_num]\n; max_layer_z [max_layer_z]\n; print_sequence [print_sequence]\n\n{if print_sequence == \"by object\"}\n{\nlocal move_z = max_print_height;\n\nif max_layer_z < ((max_print_height - z_offset) - 2) then\n move_z = z_offset + min(((max_layer_z - z_offset) + 2), max_print_height);\nendif\n}\n\nG91\nG1 X2 Y2 Z1 F24000\nG90\nG1 Z{move_z} F600\n{endif}\n\nPRINT_END\nTIMELAPSE_STOP\n\n; U1 nozzle flow metadata, one value per logical filament\n; filament_volume_type = {regex_replace(regex_replace(zdigits(0, size(filament_type)), /0/, \"standard,\"), /,$/, \"\")}\n",
"machine_max_jerk_z": [ "machine_max_jerk_z": [
"3", "3",
"0.4" "0.4"
@@ -14,5 +14,6 @@
"Snapmaker PLA SnapSpeed @U1 0.8 High Flow nozzle", "Snapmaker PLA SnapSpeed @U1 0.8 High Flow nozzle",
"Snapmaker PLA SnapSpeed @U1 0.8 High Flow nozzle" "Snapmaker PLA SnapSpeed @U1 0.8 High Flow nozzle"
], ],
"default_print_profile": "0.40 Standard @Snapmaker U1 (0.8 High Flow nozzle)" "default_print_profile": "0.40 Standard @Snapmaker U1 (0.8 High Flow nozzle)",
"machine_end_gcode": ";===== date: 20260605 =====================\n; layer [layer_num]\n; max_layer_z [max_layer_z]\n; print_sequence [print_sequence]\n\n{if print_sequence == \"by object\"}\n{\nlocal move_z = max_print_height;\n\nif max_layer_z < ((max_print_height - z_offset) - 2) then\n move_z = z_offset + min(((max_layer_z - z_offset) + 2), max_print_height);\nendif\n}\n\nG91\nG1 X2 Y2 Z1 F24000\nG90\nG1 Z{move_z} F600\n{endif}\n\nPRINT_END\nTIMELAPSE_STOP\n\n; U1 nozzle flow metadata, one value per logical filament\n; filament_volume_type = {regex_replace(regex_replace(zdigits(0, size(filament_type)), /0/, \"high_flow,\"), /,$/, \"\")}\n"
} }
@@ -34,7 +34,7 @@
"0", "0",
"0" "0"
], ],
"machine_end_gcode": ";===== date: 20260605 =====================\n; layer [layer_num]\n; max_layer_z [max_layer_z]\n; print_sequence [print_sequence]\n\n{if print_sequence == \"by object\"}\n{\nlocal move_z = max_print_height;\n\nif max_layer_z < ((max_print_height - z_offset) - 2) then\n move_z = z_offset + min(((max_layer_z - z_offset) + 2), max_print_height);\nendif\n}\n\nG91\nG1 X2 Y2 Z1 F24000\nG90\nG1 Z{move_z} F600\n{endif}\n\nPRINT_END\nTIMELAPSE_STOP\n", "machine_end_gcode": ";===== date: 20260605 =====================\n; layer [layer_num]\n; max_layer_z [max_layer_z]\n; print_sequence [print_sequence]\n\n{if print_sequence == \"by object\"}\n{\nlocal move_z = max_print_height;\n\nif max_layer_z < ((max_print_height - z_offset) - 2) then\n move_z = z_offset + min(((max_layer_z - z_offset) + 2), max_print_height);\nendif\n}\n\nG91\nG1 X2 Y2 Z1 F24000\nG90\nG1 Z{move_z} F600\n{endif}\n\nPRINT_END\nTIMELAPSE_STOP\n\n; U1 nozzle flow metadata, one value per logical filament\n; filament_volume_type = {regex_replace(regex_replace(zdigits(0, size(filament_type)), /0/, \"standard,\"), /,$/, \"\")}\n",
"machine_max_jerk_z": [ "machine_max_jerk_z": [
"3", "3",
"0.4" "0.4"