mirror of
https://github.com/OrcaSlicer/OrcaSlicer.git
synced 2026-09-10 18:56:13 +00:00
main
4 Commits
| Author | SHA1 | Message | Date | |
|---|---|---|---|---|
|
|
f7c1b290fd |
v3.2: vendor-bundle re-mint under the product-triple rule
Every remaining legacy filament_id outside the BBL/QD_* islands re-derives from its product triple (filament_vendor / filament_type / family name), completing the content-addressed id model of filament_id_plan_v3.md: - Relocation pre-step: 14 fdm_filament_* template forks (Cubicon x3, Prusa x6, RH3D x6 minus the pc fork already re-homed) stop declaring ids; the 16 presets that rode Prusa's forks now declare the id they already resolved (verified zero effective-id drift over all 5892 instantiated presets). - --drop-redundant-ids: 6 Custom/MyToolChanger generics drop copied GF ids and ride their OFL families. - --remint over all 62 non-island vendors: 2647 declarations re-derived; identical products converge cross-bundle (showcase: PolyLite PLA is now OF5CgdDq in OrcaFilamentLibrary, Qidi, OrcaArena and Snapmaker). - Prusament @XL completions surfaced by the relocation: filament_vendor ["Prusa Polymers"] on the 8 @XL declarers; Prusament PA-CF typed PA11-CF (the product is Prusament PA11CF) and PC-CF typed PC-CF (-CF family typed as base polymer); each family converges on one id. - Succession: 331 ids retired with mode-rule successors, 355 never-shipped v1 mints forgotten with chain splicing, 151 GF-shaped ids released to the island space with hints, 27 curated BBL-generic -> OFL-generic hints (GFL99 -> OFDSrzZ8 class). New --retire "OLD=NEW" maintenance mode records lineage for OGFC99/OGFG99/OGFN99 (the shipped ids of OFL's Generic PC/PETG/PA in released versions, whose claims migrated in v3.1 while Cubicon's inert fork declarations kept them alive). - Retiring the P-hex system ids removes the last system ids from check_ams_filament_valid's destructive P-gate. - AMS-ambiguity fixes surfaced by convergence (validator -f): 4 presets riding another family's id through inherits now declare their true family id (Elegoo Generic ASA-CF/PETG-CF, Snapmaker PolyLite Dual PLA / PolyLite J1 PLA); 9 Cubicon @base presets and Dremel Generic PLA, which duplicate their per-printer variants on the same printers, split onto the salt-1 iteration of their triple (sanctioned by the mint-conformance check; --remint now leaves salt-conformant declarations alone). Gates: assign_filament_ids --check 0; orca_extra_profile_check 0; 116 python unit tests; config-equivalence over all 5892 instantiated presets (byte-identical configs except the 14 sanctioned Prusament vendor/type corrections; setting_id and compatible_printers unchanged; per-family convergence and ledger conservation verified); profile validator base/-f/-r(BBL)/-r(Qidi) all green; libslic3r_tests 48610 assertions; Moonraker OFL generic map check; custom-preset fixture archives v1.9.0-v2.4.1. |
||
|
|
2c0867619c |
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.
|
||
|
|
8cb2e4e01e |
profiles: deterministic setting_id from vendor/type/name (#14432)
* profiles: enforce globally-unique, per-vendor-namespaced setting_id Many non-Bambu vendors copied Bambu's generic setting_ids (GFSA04 alone appeared in 1557 files), so setting_id was not globally unique. This namespaces every vendor's ids and reserves Bambu/OrcaFilamentLibrary space. - Reserve "G*" (Bambu) and "O*" (OrcaFilamentLibrary) id spaces. - Assign each other vendor a 2-char prefix (first+last letter, collision resolved) and renumber every instantiated preset to <PREFIX><NNNN>. - Strip setting_id from base profiles (instantiation:false) per Bambu's convention; assign one to instantiated presets that lacked it. - Remove the pre-existing misspelled "settings_id" key (91 files). - filament_id is left untouched (it is a per-material id). - Add one-time migration script scripts/assign_vendor_setting_ids.py with a persisted registry resources/profiles/vendor_prefixes.json. Re-runs freeze existing ids; only new vendors/profiles get new ids. - Bump version in each changed vendor index file. - Extend scripts/orca_extra_profile_check.py with a CI guard: global uniqueness, in-namespace, no base setting_id, no gaps, no settings_id typo. 7425 profile files changed across 61 vendors; 0 cross-vendor collisions; validator clean; migration idempotent. BBL and OrcaFilamentLibrary id spaces untouched. * profiles: add setting_id authoring guide for new vendors / profiles * profiles: drop in-repo README; setting_id guide now lives in the wiki * profiles: derive setting_id deterministically from vendor/type/name * bump profile version |
||
|
|
abe6f95aae |
Updated profiles for all Creality K-series printers (+CFS-c support) and Creality SparkX i7 support (#13947)
* v2 updated profiles and fixes * Add files via upload fixing timelaps error * Add files via upload fix timelapses * syntax fix * fixing profil errors * Add files via upload fixing * Add files via upload fixing errors * fixing syntax errors * Add files via upload syntax fix * Add files via upload naming fix * Update SPARKX startgcode * Update SPARKX i7 startgcode * Update SPARKX i7 startgcode * Update SPARKX i7 startgcode * delete old file dublicates * SparkX gcode fix * indentation fix * name changes of printers and deleted 2025 versions * syntax fix * fixes * fixes * profil name fixes and syntax * fixed naming restored old names, renamed Ender 3 S1 Sonic, fixed Creality.json - used original formating and fixed the printer list order * syntax * Add files via upload syntax, formating * differences fix fixing deleted lines in creality.json * differences fix in creality.json * Update Creality CR-10 SE.json * Update Creality CR-10 V3.json * Update Creality CR-6 Max.json * Update Creality CR-10 V3.json * Update Creality CR-6 SE.json * Update Creality Ender-3 Pro.json * Update Creality Ender-3 S1 Plus.json * Update Creality Ender-3 V3 KE.json * Update Creality Ender-3.json * Update Creality Ender-5 Pro (2019).json * Update Creality K1 Max.json * Update Creality K1.json * Update Creality K1C.json * Update Creality K2 Plus.json * Update Creality K2 Pro.json * Update Creality K2.json * filament and process files formating and fixes form comments * formating fixes * 0 value fix * combine filament profiles * fix deleted filament * machine files formatting * machine files formatting * Update Creality Hi.json change bed type * Update bed type Creality Ender-5 Max.json * chore(profiles/Creality): update SPARKX i7 process names Update the profile names according to the existing ones, according to layer height vs nozzle diameter: - 0.10mm @ 0.2: "HighDetail" - 0.08mm @ 0.4: "SuperDetail" - 0.12mm @ 0.4: "Fine" - 0.16mm @ 0.4: "Optimal" - 0.20mm @ 0.4: "Standard" (maintained) - 0.24mm @ 0.4: "Draft" - 0.28mm @ 0.4: "SuperDraft" - 0.30mm @ 0.6: "Standard" (maintained) - 0.40mm @ 0.8: "Standard" (maintained) This leaves the "HueForge" one untouched, that's it's own setting. * chore(profiles/Creality): update machine with new process name Matches the default process for the 0.2 nozzle to the renamed process. * chore(profiles/Creality): update processes on `Creality.json` Update the main `Creality.json` manifest with the updated process (file) names. * Update Creality K1 Max (0.4 nozzle).json * Update Creality K1 Max (0.6 nozzle).json * Update Creality K1 Max (0.8 nozzle).json * delete cr30 and k1 se naming fix * Update 0.20mm Standard @Creality K1 SE 0.4.json * Update Creality.json delete duplicat entry * fixed formatting * split PR * formatting fixes * settings id instead of filament id delete * Delete Creality.json in wrong location * delete filament id * Update Creality SPARKX i7 0.2 nozzle.json * Update Creality SPARKX i7 0.4 nozzle.json * Update Creality SPARKX i7 0.6 nozzle.json * Update Creality SPARKX i7 0.8 nozzle.json * delete ender 5 files * delete ender 5 max files * adding ender 5 max files * Update Creality Hi 0.6 nozzle.json * fixes from comments * fixes from comments * fixes from comments and adding filamentid back * tabs formatting fixes * fixes * K1C fixes and printer_structure delete undefined * formatting * fixes from comments * fixes from comments * use original pictures * naming fixes, Default Filament profile and Filaments fixed * match order of key process files * match order in Creality.json and fix Profile error * order of printers in menu fix and max accel warning fixed * revert back fixes for warnings * fix duplicate keys from resolving merging conflicts --------- Co-authored-by: Alys Andreollo <3528187+alysandreollo@users.noreply.github.com> Co-authored-by: SoftFever <softfeverever@gmail.com> |