Merge branch 'main' into feature/filament_id

Brings in 560 commits (merge base 2026-07-04 .. origin/main af9fd10d7a).
19 conflicts resolved; the other 138 touched files auto-merged.

Conflict resolutions
- Snapmaker/Polymaker (7): main normalised JSON key order in #15039 while this
  branch inserted filament_id/filament_vendor. Took main's key order and kept
  this branch's values, inserting a single filament_id key rather than letting
  git's line merge leave duplicate "from"/"instantiation" keys.
- re3D rPETG @0.8/@1.75 nozzle (2): main renamed these from "re3D Greengate
  rPETG @*" and re-vendored GreenGate3D -> re3D (#15169). Git's rename-aware
  merge produced a file with two filament_vendor keys; took main's version
  wholesale instead. The id is reconciled by the tooling, not by hand.
- re3D rPP (1): kept main's inherits change (fdm_filament_pet -> fdm_filament_pp,
  local filament_type override dropped) and its widened compatible_printers.
  The flattened type is still PP, so the product triple and id OFfHGM1D are
  unchanged.
- re3D Greengate rPETG.json, Afinia {ABS+,ABS,PLA,TPU,Value ABS,Value PLA}.json
  (7 modify/delete): accepted main's deletions. The Afinia ids are not orphaned
  - the surviving @HS presets resolve the same triple and already carry the
  same ids, so nothing is retired.
- .github/workflows/check_profiles.yml: kept both main's new "validate slice"
  step and this branch's tree-wide filament-subtype check.
- tests/libslic3r/CMakeLists.txt: kept both test_filament_id_succession.cpp and
  main's test_preset_diff.cpp.

Verified
- No conflict markers; all 12795 profile JSONs parse with no duplicate keys.
- All branch artifacts (tooling, snapshot, ledger, doc, tests) intact and
  unmodified by the merge.
- The succession-ledger C++ call sites survived main's refactors; audited
  Preset.{cpp,hpp}, PresetBundle.cpp, DeviceManager.cpp, PresetComboBoxes.cpp,
  CaliHistoryDialog.cpp, MoonrakerPrinterAgent.cpp against base/ours/theirs.
- scripts/tests: 115/116 pass.

Known follow-up: assign_filament_ids.py --check reports 243 errors, all from
filament data main added in the last month (BBL/addnorth, Qidi X5/Plus 5,
Snapmaker U1, re3D). The single failing unit test is the live-tree conformance
test asserting that count is zero. Reconciliation lands separately.
This commit is contained in:
SoftFever
2026-08-08 02:05:37 +08:00
2224 changed files with 2621813 additions and 1287333 deletions

View File

@@ -1,103 +0,0 @@
{
"type": "process",
"name": "0.20mm Standard @Comgrow T500 1.0",
"inherits": "fdm_process_comgrow_common",
"from": "system",
"setting_id": "2lOjEPJ5JELGadG3",
"instantiation": "true",
"adaptive_layer_height": "1",
"reduce_crossing_wall": "0",
"layer_height": "0.24",
"max_travel_detour_distance": "0",
"bottom_surface_pattern": "monotonic",
"bottom_shell_layers": "2",
"bottom_shell_thickness": "0",
"bridge_flow": "0.85",
"bridge_speed": "25",
"brim_width": "0",
"brim_object_gap": "0",
"compatible_printers_condition": "",
"print_sequence": "by layer",
"bridge_no_support": "0",
"draft_shield": "disabled",
"elefant_foot_compensation": "0.1",
"enable_arc_fitting": "0",
"outer_wall_line_width": "1.0",
"wall_infill_order": "inner wall/outer wall/infill",
"line_width": "1.0",
"infill_direction": "45",
"sparse_infill_density": "15%",
"sparse_infill_pattern": "crosshatch",
"initial_layer_line_width": "1.0",
"initial_layer_print_height": "0.28",
"infill_combination": "0",
"sparse_infill_line_width": "1.0",
"infill_wall_overlap": "23%",
"interface_shells": "0",
"ironing_flow": "15%",
"ironing_spacing": "0.25",
"ironing_speed": "15",
"ironing_type": "no ironing",
"reduce_infill_retraction": "1",
"detect_overhang_wall": "1",
"overhang_1_4_speed": "0",
"overhang_2_4_speed": "20",
"overhang_3_4_speed": "15",
"overhang_4_4_speed": "10",
"inner_wall_line_width": "1.0",
"wall_loops": "2",
"print_settings_id": "",
"raft_layers": "0",
"seam_position": "aligned",
"skirt_distance": "3",
"skirt_height": "2",
"skirt_loops": "2",
"minimum_sparse_infill_area": "10",
"internal_solid_infill_line_width": "0",
"spiral_mode": "0",
"standby_temperature_delta": "-5",
"enable_support": "0",
"resolution": "0.012",
"support_type": "normal(auto)",
"support_style": "grid",
"support_on_build_plate_only": "0",
"support_top_z_distance": "0.15",
"support_filament": "0",
"support_line_width": "1.0",
"support_interface_loop_pattern": "0",
"support_interface_filament": "0",
"support_interface_top_layers": "3",
"support_interface_bottom_layers": "-1",
"support_interface_spacing": "0.2",
"support_interface_speed": "100%",
"support_base_pattern": "rectilinear",
"support_base_pattern_spacing": "0.2",
"support_speed": "60",
"support_threshold_angle": "30",
"support_object_xy_distance": "60%",
"tree_support_branch_angle": "40",
"tree_support_wall_count": "0",
"detect_thin_wall": "1",
"top_surface_pattern": "monotonicline",
"top_surface_line_width": "1.0",
"top_shell_layers": "2",
"top_shell_thickness": "0.8",
"initial_layer_speed": "25",
"initial_layer_infill_speed": "80",
"outer_wall_speed": "50",
"inner_wall_speed": "60",
"internal_solid_infill_speed": "60",
"top_surface_speed": "40",
"gap_infill_speed": "60",
"sparse_infill_speed": "50",
"travel_speed": "80",
"enable_prime_tower": "1",
"wipe_tower_no_sparse_layers": "0",
"prime_tower_width": "60",
"xy_hole_compensation": "0",
"xy_contour_compensation": "0",
"seam_gap": "5%",
"compatible_printers": [
"Comgrow T500 1.0 nozzle"
]
}