mirror of
https://github.com/OrcaSlicer/OrcaSlicer.git
synced 2026-09-09 10:16:50 +00:00
v3.0: content-addressed mint tooling, succession runtime, W1 hardening
Implements phase v3.0 of filament_id_plan_v3.md - tooling and client
prerequisites. No filament_id values change in this commit.
Tooling (scripts/assign_filament_ids.py; 106 unit tests):
- The mint key becomes "filament_product/<filament_vendor>/<filament_type>/
<family_name>", resolved loader-faithfully from the declarer's flattened
config - bundle-independent and content-addressed; identity fixes re-id
by design and are made safe by the succession ledger. --mint now takes
the triple.
- The snapshot gains "triples" and "triple_exceptions" sections, folded
into the equality gate: any vendor/type/name change surfaces as a
reviewable snapshot diff. Check 3 rewritten to triple-mint conformance
with (id, triple) grandfathering; check 5 generalized from OFL generics
to every OFL-riding vendor preset; new check 8 (triple integrity) and
check 9 (succession integrity).
- The retired ledger moves to resources/profiles/retired_filament_ids.json
so it ships with the app; schema {claims, successor} plus cross-island
"hints". The 14 v1 entries are migrated with mode-rule successors.
Vanished ids in a foreign island's space (GF*/QD_*) are RELEASED with a
hint instead of retired: the island catalog owns them and may
legitimately (re)ship them, which check 4 must never block.
- New maintenance modes: --remint VENDOR, --drop-redundant-ids VENDOR,
--add-hint "OLD=NEW", and --update-snapshot --forget-never-shipped FILE
(never-shipped ids drop from lineage; chains splice through them).
Runtime (C++):
- Succession helpers in libslic3r/Preset (pure chain-follow + lazy ledger
load from resources), consulted only on resolution miss in
get_filament_by_filament_id, both AMS sync predicates,
add_ams_filaments, setting_id_to_type, and the calibration-history
lookup; behavior is byte-identical while the ledger has no matching
entry. Catch2 coverage in tests/libslic3r.
- W1 hardening: check_ams_filament_valid no longer remote-wipes trays or
rewrites temps for P-shaped ids that a system preset carries (ten such
system ids ship today); the size==8 && [0]=='P' assert is relaxed; the
unguarded filament_list find deref in the temp-equation check returns
non-destructively on a miss.
- MoonrakerPrinterAgent: the 23 hardcoded OFL generic ids are replaced by
a runtime lookup of "Generic <family> @System" (id-equivalent on
today's shipped profiles, follows future re-mints automatically);
scripts/test_moonraker_lane_data.py derives its expectations from the
shipped profiles and gains --check-ofl-map.
Profile data (W3 - type is now a key component, so type bugs are fixed
before any re-mint):
- 17 same-name-different-type groups corrected across 50 files (OFL
Generic PETG-CF/PE-CF/PP-CF; Flashforge ASA Basic/ASA-CF/ABS-CF/HIPS/
PAHT-CF/PLA Silk; FusRock PAHT; Creality Generic PA6-CF; InfiMech PETG;
Anycubic TPU 95A / TPU for ACE; Prusa Generic PA-CF/PLA-CF) - every
value validated against MaterialType::all(); 3 Snapmaker U1 roots gain
their missing filament_vendor. Flattened-config equivalence vs the
previous commit: exactly the 54 intended diffs, zero BBL.
- doc/developer-reference/filament_id.md rewritten for the v3 rule.
Ambiguous type divergences (Prusa Generic TPU/TPU HF FLEX-vs-TPU, FusRock
S-Multi/S-PAHT) and all same-type vendor-tag divergences are deferred to
the v3.2 vendor worksheets, catalogued with analysis.
This commit is contained in:
@@ -13,7 +13,7 @@
|
||||
"Anycubic"
|
||||
],
|
||||
"filament_type": [
|
||||
"PEBA"
|
||||
"TPU"
|
||||
],
|
||||
"compatible_printers": [
|
||||
"Anycubic Kobra S1 Max 0.6 nozzle"
|
||||
|
||||
@@ -13,7 +13,7 @@
|
||||
"Anycubic"
|
||||
],
|
||||
"filament_type": [
|
||||
"TPU for ACE"
|
||||
"TPU"
|
||||
],
|
||||
"compatible_printers": [
|
||||
"Anycubic Kobra S1 Max 0.4 nozzle"
|
||||
|
||||
@@ -13,7 +13,7 @@
|
||||
"Anycubic"
|
||||
],
|
||||
"filament_type": [
|
||||
"PEBA"
|
||||
"TPU"
|
||||
],
|
||||
"compatible_printers": [
|
||||
"Anycubic Kobra S1 Max 0.6 nozzle"
|
||||
|
||||
@@ -87,7 +87,7 @@
|
||||
"0"
|
||||
],
|
||||
"filament_type": [
|
||||
"PA-CF"
|
||||
"PA6-CF"
|
||||
],
|
||||
"filament_vendor": [
|
||||
"Generic"
|
||||
|
||||
@@ -87,7 +87,7 @@
|
||||
"0"
|
||||
],
|
||||
"filament_type": [
|
||||
"PA-CF"
|
||||
"PA6-CF"
|
||||
],
|
||||
"filament_vendor": [
|
||||
"Generic"
|
||||
|
||||
@@ -87,7 +87,7 @@
|
||||
"0"
|
||||
],
|
||||
"filament_type": [
|
||||
"PA-CF"
|
||||
"PA6-CF"
|
||||
],
|
||||
"filament_vendor": [
|
||||
"Generic"
|
||||
|
||||
@@ -87,7 +87,7 @@
|
||||
"0"
|
||||
],
|
||||
"filament_type": [
|
||||
"PA-CF"
|
||||
"PA6-CF"
|
||||
],
|
||||
"filament_vendor": [
|
||||
"Generic"
|
||||
|
||||
@@ -84,7 +84,7 @@
|
||||
"0"
|
||||
],
|
||||
"filament_type": [
|
||||
"PA-CF"
|
||||
"PA6-CF"
|
||||
],
|
||||
"filament_vendor": [
|
||||
"Generic"
|
||||
|
||||
@@ -84,7 +84,7 @@
|
||||
"0"
|
||||
],
|
||||
"filament_type": [
|
||||
"PA-CF"
|
||||
"PA6-CF"
|
||||
],
|
||||
"filament_vendor": [
|
||||
"Generic"
|
||||
|
||||
@@ -39,6 +39,9 @@
|
||||
"filament_start_gcode": [
|
||||
"; filament start gcode\n;right_extruder_material: ABS-CF\n"
|
||||
],
|
||||
"filament_type": [
|
||||
"ABS-CF"
|
||||
],
|
||||
"compatible_printers": [
|
||||
"Flashforge Guider4 0.4 nozzle"
|
||||
],
|
||||
|
||||
@@ -39,6 +39,9 @@
|
||||
"filament_start_gcode": [
|
||||
"; filament start gcode\n;right_extruder_material: ABS-CF\n"
|
||||
],
|
||||
"filament_type": [
|
||||
"ABS-CF"
|
||||
],
|
||||
"compatible_printers": [
|
||||
"Flashforge Guider4 Pro 0.4 nozzle"
|
||||
],
|
||||
|
||||
@@ -27,6 +27,9 @@
|
||||
"filament_settings_id": [
|
||||
"Flashforge ASA Basic @FF AD5X 0.6 nozzle"
|
||||
],
|
||||
"filament_type": [
|
||||
"ASA"
|
||||
],
|
||||
"compatible_printers": [
|
||||
"Flashforge AD5X 0.6 nozzle"
|
||||
],
|
||||
|
||||
@@ -27,6 +27,9 @@
|
||||
"filament_settings_id": [
|
||||
"Flashforge ASA Basic @FF AD5X 0.8 nozzle"
|
||||
],
|
||||
"filament_type": [
|
||||
"ASA"
|
||||
],
|
||||
"compatible_printers": [
|
||||
"Flashforge AD5X 0.8 nozzle"
|
||||
],
|
||||
|
||||
@@ -27,6 +27,9 @@
|
||||
"filament_settings_id": [
|
||||
"Flashforge ASA Basic @FF AD5X"
|
||||
],
|
||||
"filament_type": [
|
||||
"ASA"
|
||||
],
|
||||
"compatible_printers": [
|
||||
"Flashforge AD5X 0.4 nozzle"
|
||||
],
|
||||
|
||||
@@ -37,7 +37,7 @@
|
||||
"; filament start gcode\n;right_extruder_material: ASA-CF\n"
|
||||
],
|
||||
"filament_type": [
|
||||
"ASA"
|
||||
"ASA-CF"
|
||||
],
|
||||
"compatible_printers": [
|
||||
"Flashforge Guider4 0.4 nozzle"
|
||||
|
||||
@@ -37,7 +37,7 @@
|
||||
"; filament start gcode\n;right_extruder_material: ASA-CF\n"
|
||||
],
|
||||
"filament_type": [
|
||||
"ASA"
|
||||
"ASA-CF"
|
||||
],
|
||||
"compatible_printers": [
|
||||
"Flashforge Guider4 Pro 0.4 nozzle"
|
||||
|
||||
@@ -16,7 +16,7 @@
|
||||
"Flashforge ASA-CF"
|
||||
],
|
||||
"filament_type": [
|
||||
"ASA"
|
||||
"ASA-CF"
|
||||
],
|
||||
"hot_plate_temp": [
|
||||
"100"
|
||||
|
||||
@@ -63,6 +63,9 @@
|
||||
"filament_start_gcode": [
|
||||
"; filament start gcode\n;right_extruder_material:HIPS"
|
||||
],
|
||||
"filament_type": [
|
||||
"HIPS"
|
||||
],
|
||||
"compatible_printers": [
|
||||
"Flashforge Guider4 0.6 HF nozzle"
|
||||
],
|
||||
|
||||
@@ -63,6 +63,9 @@
|
||||
"filament_start_gcode": [
|
||||
"; filament start gcode\n;right_extruder_material:HIPS"
|
||||
],
|
||||
"filament_type": [
|
||||
"HIPS"
|
||||
],
|
||||
"compatible_printers": [
|
||||
"Flashforge Guider4 0.6 nozzle"
|
||||
],
|
||||
|
||||
@@ -63,6 +63,9 @@
|
||||
"filament_start_gcode": [
|
||||
"; filament start gcode\n;right_extruder_material:HIPS"
|
||||
],
|
||||
"filament_type": [
|
||||
"HIPS"
|
||||
],
|
||||
"compatible_printers": [
|
||||
"Flashforge Guider4 0.8 HF nozzle"
|
||||
],
|
||||
|
||||
@@ -63,6 +63,9 @@
|
||||
"filament_start_gcode": [
|
||||
"; filament start gcode\n;right_extruder_material:HIPS"
|
||||
],
|
||||
"filament_type": [
|
||||
"HIPS"
|
||||
],
|
||||
"compatible_printers": [
|
||||
"Flashforge Guider4 Pro 0.6 HF nozzle"
|
||||
],
|
||||
|
||||
@@ -63,6 +63,9 @@
|
||||
"filament_start_gcode": [
|
||||
"; filament start gcode\n;right_extruder_material:HIPS"
|
||||
],
|
||||
"filament_type": [
|
||||
"HIPS"
|
||||
],
|
||||
"compatible_printers": [
|
||||
"Flashforge Guider4 Pro 0.6 nozzle"
|
||||
],
|
||||
|
||||
@@ -63,6 +63,9 @@
|
||||
"filament_start_gcode": [
|
||||
"; filament start gcode\n;right_extruder_material:HIPS"
|
||||
],
|
||||
"filament_type": [
|
||||
"HIPS"
|
||||
],
|
||||
"compatible_printers": [
|
||||
"Flashforge Guider4 Pro 0.8 HF nozzle"
|
||||
],
|
||||
|
||||
@@ -61,7 +61,7 @@
|
||||
"; filament start gcode\n;right_extruder_material:PA-CF\n"
|
||||
],
|
||||
"filament_type": [
|
||||
"PA-CF"
|
||||
"PAHT-CF"
|
||||
],
|
||||
"compatible_printers": [
|
||||
"Flashforge Guider4 0.4 nozzle"
|
||||
|
||||
@@ -61,7 +61,7 @@
|
||||
"; filament start gcode\n;right_extruder_material:PA-CF\n"
|
||||
],
|
||||
"filament_type": [
|
||||
"PA-CF"
|
||||
"PAHT-CF"
|
||||
],
|
||||
"compatible_printers": [
|
||||
"Flashforge Guider4 Pro 0.4 nozzle"
|
||||
|
||||
@@ -31,7 +31,7 @@
|
||||
"Flashforge PLA Silk @FF AD5X 0.25 nozzle"
|
||||
],
|
||||
"filament_type": [
|
||||
"SILK"
|
||||
"PLA"
|
||||
],
|
||||
"compatible_printers": [
|
||||
"Flashforge AD5X 0.25 nozzle"
|
||||
|
||||
@@ -22,7 +22,7 @@
|
||||
"Flashforge PLA Silk @FF AD5X 0.6 nozzle"
|
||||
],
|
||||
"filament_type": [
|
||||
"SILK"
|
||||
"PLA"
|
||||
],
|
||||
"compatible_printers": [
|
||||
"Flashforge AD5X 0.6 nozzle"
|
||||
|
||||
@@ -22,7 +22,7 @@
|
||||
"Flashforge PLA Silk @FF AD5X 0.8 nozzle"
|
||||
],
|
||||
"filament_type": [
|
||||
"SILK"
|
||||
"PLA"
|
||||
],
|
||||
"compatible_printers": [
|
||||
"Flashforge AD5X 0.8 nozzle"
|
||||
|
||||
@@ -22,7 +22,7 @@
|
||||
"Flashforge PLA Silk @FF AD5X"
|
||||
],
|
||||
"filament_type": [
|
||||
"SILK"
|
||||
"PLA"
|
||||
],
|
||||
"hot_plate_temp": [
|
||||
"60"
|
||||
|
||||
@@ -54,7 +54,7 @@
|
||||
"; filament start gcode"
|
||||
],
|
||||
"filament_type": [
|
||||
"SILK"
|
||||
"PLA"
|
||||
],
|
||||
"hot_plate_temp": [
|
||||
"65"
|
||||
|
||||
@@ -57,7 +57,7 @@
|
||||
"; filament start gcode"
|
||||
],
|
||||
"filament_type": [
|
||||
"SILK"
|
||||
"PLA"
|
||||
],
|
||||
"nozzle_temperature": [
|
||||
"230"
|
||||
|
||||
@@ -36,6 +36,9 @@
|
||||
"filament_start_gcode": [
|
||||
"; filament start gcode\n;right_extruder_material:PA"
|
||||
],
|
||||
"filament_type": [
|
||||
"PAHT"
|
||||
],
|
||||
"compatible_printers": [
|
||||
"Flashforge Guider4 0.6 HF nozzle"
|
||||
],
|
||||
|
||||
@@ -36,6 +36,9 @@
|
||||
"filament_start_gcode": [
|
||||
"; filament start gcode\n;right_extruder_material:PA"
|
||||
],
|
||||
"filament_type": [
|
||||
"PAHT"
|
||||
],
|
||||
"compatible_printers": [
|
||||
"Flashforge Guider4 0.8 HF nozzle"
|
||||
],
|
||||
|
||||
@@ -36,6 +36,9 @@
|
||||
"filament_start_gcode": [
|
||||
"; filament start gcode\n;right_extruder_material:PA"
|
||||
],
|
||||
"filament_type": [
|
||||
"PAHT"
|
||||
],
|
||||
"compatible_printers": [
|
||||
"Flashforge Guider4 Pro 0.6 HF nozzle"
|
||||
],
|
||||
|
||||
@@ -36,6 +36,9 @@
|
||||
"filament_start_gcode": [
|
||||
"; filament start gcode\n;right_extruder_material:PA"
|
||||
],
|
||||
"filament_type": [
|
||||
"PAHT"
|
||||
],
|
||||
"compatible_printers": [
|
||||
"Flashforge Guider4 Pro 0.8 HF nozzle"
|
||||
],
|
||||
|
||||
@@ -55,7 +55,7 @@
|
||||
"; filament start gcode\n;right_extruder_material:PA-CF\n"
|
||||
],
|
||||
"filament_type": [
|
||||
"PA-CF"
|
||||
"PAHT-CF"
|
||||
],
|
||||
"compatible_printers": [
|
||||
"Flashforge Guider4 0.4 nozzle"
|
||||
|
||||
@@ -55,7 +55,7 @@
|
||||
"; filament start gcode\n;right_extruder_material:PA-CF\n"
|
||||
],
|
||||
"filament_type": [
|
||||
"PA-CF"
|
||||
"PAHT-CF"
|
||||
],
|
||||
"compatible_printers": [
|
||||
"Flashforge Guider4 Pro 0.4 nozzle"
|
||||
|
||||
@@ -168,7 +168,7 @@
|
||||
"0"
|
||||
],
|
||||
"filament_type": [
|
||||
"PA-CF"
|
||||
"PAHT-CF"
|
||||
],
|
||||
"filament_unload_time": [
|
||||
"0"
|
||||
|
||||
@@ -53,7 +53,7 @@
|
||||
"; filament start gcode"
|
||||
],
|
||||
"filament_type": [
|
||||
"SILK"
|
||||
"PLA"
|
||||
],
|
||||
"hot_plate_temp": [
|
||||
"65"
|
||||
|
||||
@@ -56,7 +56,7 @@
|
||||
"; filament start gcode"
|
||||
],
|
||||
"filament_type": [
|
||||
"SILK"
|
||||
"PLA"
|
||||
],
|
||||
"nozzle_temperature": [
|
||||
"230"
|
||||
|
||||
@@ -44,7 +44,7 @@
|
||||
"12"
|
||||
],
|
||||
"filament_type": [
|
||||
"PETG Basic"
|
||||
"PETG"
|
||||
],
|
||||
"filament_density": [
|
||||
"1.27"
|
||||
|
||||
@@ -44,7 +44,7 @@
|
||||
"12"
|
||||
],
|
||||
"filament_type": [
|
||||
"PETG Basic"
|
||||
"PETG"
|
||||
],
|
||||
"filament_density": [
|
||||
"1.27"
|
||||
|
||||
@@ -4,5 +4,8 @@
|
||||
"inherits": "fdm_filament_pe",
|
||||
"from": "system",
|
||||
"filament_id": "OFJfx0Cl",
|
||||
"instantiation": "false"
|
||||
"instantiation": "false",
|
||||
"filament_type": [
|
||||
"PE-CF"
|
||||
]
|
||||
}
|
||||
|
||||
@@ -4,5 +4,8 @@
|
||||
"inherits": "fdm_filament_pet",
|
||||
"from": "system",
|
||||
"filament_id": "OFDCk0cz",
|
||||
"instantiation": "false"
|
||||
"instantiation": "false",
|
||||
"filament_type": [
|
||||
"PETG-CF"
|
||||
]
|
||||
}
|
||||
|
||||
@@ -4,5 +4,8 @@
|
||||
"inherits": "fdm_filament_pp",
|
||||
"from": "system",
|
||||
"filament_id": "OFRS2Ggt",
|
||||
"instantiation": "false"
|
||||
"instantiation": "false",
|
||||
"filament_type": [
|
||||
"PP-CF"
|
||||
]
|
||||
}
|
||||
|
||||
@@ -4,5 +4,8 @@
|
||||
"inherits": "fdm_filament_pa",
|
||||
"from": "system",
|
||||
"filament_id": "OFXfgh61",
|
||||
"instantiation": "false"
|
||||
"instantiation": "false",
|
||||
"filament_type": [
|
||||
"PA-CF"
|
||||
]
|
||||
}
|
||||
|
||||
@@ -4,5 +4,8 @@
|
||||
"inherits": "fdm_filament_pla",
|
||||
"from": "system",
|
||||
"filament_id": "OFv8SRZh",
|
||||
"instantiation": "false"
|
||||
"instantiation": "false",
|
||||
"filament_type": [
|
||||
"PLA-CF"
|
||||
]
|
||||
}
|
||||
|
||||
@@ -46,6 +46,9 @@
|
||||
"filament_type": [
|
||||
"PLA"
|
||||
],
|
||||
"filament_vendor": [
|
||||
"Snapmaker"
|
||||
],
|
||||
"filament_density": [
|
||||
"1.24"
|
||||
],
|
||||
|
||||
@@ -46,6 +46,9 @@
|
||||
"filament_type": [
|
||||
"PLA"
|
||||
],
|
||||
"filament_vendor": [
|
||||
"Snapmaker"
|
||||
],
|
||||
"filament_density": [
|
||||
"1.24"
|
||||
],
|
||||
|
||||
@@ -46,6 +46,9 @@
|
||||
"filament_type": [
|
||||
"PLA"
|
||||
],
|
||||
"filament_vendor": [
|
||||
"Snapmaker"
|
||||
],
|
||||
"filament_density": [
|
||||
"1.24"
|
||||
],
|
||||
|
||||
90
resources/profiles/retired_filament_ids.json
Normal file
90
resources/profiles/retired_filament_ids.json
Normal file
@@ -0,0 +1,90 @@
|
||||
{
|
||||
"hints": {},
|
||||
"retired": {
|
||||
"GFABS": {
|
||||
"claims": [
|
||||
"Anycubic/Anycubic ABS"
|
||||
],
|
||||
"successor": "OFf2b9wu"
|
||||
},
|
||||
"GFL92": {
|
||||
"claims": [
|
||||
"Anycubic/Anycubic PLA"
|
||||
],
|
||||
"successor": "OFgK2Xvv"
|
||||
},
|
||||
"GFL93": {
|
||||
"claims": [
|
||||
"Anycubic/Anycubic PLA+"
|
||||
],
|
||||
"successor": "OFgrGfPy"
|
||||
},
|
||||
"GFPLA": {
|
||||
"claims": [
|
||||
"Anycubic/Anycubic PLA"
|
||||
],
|
||||
"successor": "OFgK2Xvv"
|
||||
},
|
||||
"GFPLA High Speed": {
|
||||
"claims": [
|
||||
"Anycubic/Anycubic PLA High Speed"
|
||||
],
|
||||
"successor": "OFgSK1hL"
|
||||
},
|
||||
"GFPLA Matte": {
|
||||
"claims": [
|
||||
"Anycubic/Anycubic PLA Matte"
|
||||
],
|
||||
"successor": "OFvYfHPB"
|
||||
},
|
||||
"GFPLA Silk": {
|
||||
"claims": [
|
||||
"Anycubic/Anycubic PLA Silk"
|
||||
],
|
||||
"successor": "OFjdTQd6"
|
||||
},
|
||||
"GFPLA+": {
|
||||
"claims": [
|
||||
"Anycubic/Anycubic PLA+"
|
||||
],
|
||||
"successor": "OFgrGfPy"
|
||||
},
|
||||
"P11851ba": {
|
||||
"claims": [
|
||||
"Artillery/Artillery PET"
|
||||
],
|
||||
"successor": "OFw0qp7w"
|
||||
},
|
||||
"P284941e": {
|
||||
"claims": [
|
||||
"Artillery/Artillery PETG",
|
||||
"Artillery/Artillery PETG Basic"
|
||||
],
|
||||
"successor": "OFEYKrjb"
|
||||
},
|
||||
"P2fbf0c0": {
|
||||
"claims": [
|
||||
"Artillery/Artillery TPU"
|
||||
],
|
||||
"successor": "OFTbsWVg"
|
||||
},
|
||||
"P39db358": {
|
||||
"claims": [
|
||||
"Artillery/Artillery ABS"
|
||||
],
|
||||
"successor": "OFw1S8lL"
|
||||
},
|
||||
"P8163162": {
|
||||
"claims": [
|
||||
"Artillery/Artillery PVA"
|
||||
],
|
||||
"successor": "OFc2SnEp"
|
||||
},
|
||||
"P87436f6": {
|
||||
"claims": [
|
||||
"Artillery/Artillery ASA"
|
||||
],
|
||||
"successor": "OFtmT4Nd"
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user